WSM client control can not load WSDL file from @WSDL annotation
---------------------------------------------------------------
Key: BEEHIVE-769
URL: http://issues.apache.org/jira/browse/BEEHIVE-769
Project: Beehive
Type: Bug
Components: Controls
Versions: V1
Environment: Win XP SP2, JDK 1.5.03
Reporter: Yongqin Xu
Priority: Critical
In WSM web service client control, I specified @WSDL(path="Skugen.wsdl"...) as
I did before. But latest unit test failed with following error:
-------------------------------------------------------------------------
bcc
java.lang.NullPointerException: bcc
at
java.beans.beancontext.BeanContextSupport.getResourceAsStream(BeanContextSupport.java:646)
at
org.apache.beehive.controls.system.webservice.jaxrpc.ServiceControlImpl.getWSDLStream(ServiceControlImpl.java:514)
at
org.apache.beehive.controls.system.webservice.jaxrpc.ServiceControlImpl.initialize(ServiceControlImpl.java:457)
at
org.apache.beehive.controls.system.webservice.jaxrpc.ServiceControlImpl.invoke(ServiceControlImpl.java:126)
at
com.bea.wlw.aa.skugen.ws.GenerateSKUBean.ping(GenerateSKUBean.java:124)
at
com.bea.wlw.aa.skugen.ws.SkuGeneratorClientControlTest.testPing(SkuGeneratorClientControlTest.java:80)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at
----------------------------------------------------------------------------
According to stack trace. In source code:
org.apache.beehive.controls.system.webservice.jaxrpc.ServiceControlImpl.java,
the private method getWSDLStream(String), at line 514:
wsdlStream =cbContext.getBeanContext().getResourceAsStream(pathToWSDL, null);
The second parameter is "null". But by checking JDK source code 1.5.03 in
java.beans.beancontext.BeanContextSupport.java, at line 644, the method:
public InputStream getResourceAsStream(String name, BeanContextChild bcc) {
if (name == null) throw new NullPointerException("name");
if (bcc == null) throw new NullPointerException("bcc");
if (containsKey(bcc)) {
ClassLoader cl = bcc.getClass().getClassLoader();
return cl != null ? cl.getResourceAsStream(name)
: ClassLoader.getSystemResourceAsStream(name);
} else throw new IllegalArgumentException("Not a valid child");
}
"bcc" is required somehow, that is why the NullPointerException happened.
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see:
http://www.atlassian.com/software/jira