NullPointerException in WSDL11Reader
nicoschl Dec 10, 2006 3:32 PMHi,
I'm using Jboss 4.0.4 GA on Windows XP and Redhat Linux. I'm trying to deploy an EJB 2 SLSB as a web service. I get a NullPointerException
on deployment.
My SEI:
package za.co.testws.interfaces; import java.rmi.*; import za.co.testws.services.*; public interface RequestService extends Remote { public Message processClaim(Message messsge) throws RemoteException; }
SEI Implementation:
package za.co.testws.services; import java.rmi.*; import javax.ejb.*; import org.apache.log4j.*; import za.co.testws.interfaces.*; public class RequestServiceEJB implements SessionBean, RequestService { private Logger logger = Logger.getLogger(this.getClass()); public Message processClaim(Message message) throws RemoteException { logger.info("Executing business logic:" + message); return message; } // including the normal ejbActivate, ejbCreate etc with empty implementations } package za.co.testws.services; public class Message { private String name; private Integer status; public Message() {} public Message(String name, Integer status) { setName(name); setStatus(status); } // the getters & setters }
The WSDL file: (generated by wscompile from jwsdp 2)
<?xml version="1.0" encoding="UTF-8"?> <definitions name="processClaim" targetNamespace="http://za.co.testws.interfaces" xmlns:tns="http://za.co.testws.interfaces" xmlns="http://schemas.xmlsoap.org/wsdl/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:ns2="http://za.co.testws.interfaces/types"> <types> <schema targetNamespace="http://za.co.testws.interfaces/types" xmlns:tns="http://za.co.testws.interfaces/types" xmlns:soap11-enc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns="http://www.w3.org/2001/XMLSchema"> <import namespace="http://schemas.xmlsoap.org/soap/encoding/" /> <complexType name="Message"> <sequence> <element name="name" type="string" /> <element name="status" type="soap11-enc:int" /> </sequence> </complexType> </schema> </types> <message name="RequestService_processClaim"> <part name="Message_1" type="ns2:Message" /> </message> <message name="RequestService_processClaimResponse"> <part name="result" type="ns2:Message" /> </message> <portType name="RequestServicePort"> <operation name="processClaim" parameterOrder="Message_1"> <input message="tns:RequestService_processClaim" /> <output message="tns:RequestService_processClaimResponse" /> </operation> </portType> <binding name="RequestServiceBinding" type="tns:RequestService"> <soap:binding transport="http://schemas.xmlsoap.org/soap/http" style="document" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"/> <operation name="processClaim"> <soap:operation soapAction="http://za.co.testws.interfaces/processClaim" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"/> <input> <soap:body use="literal" namespace="http://za.co.testws.interfaces" /> </input> <output> <soap:body use="literal" namespace="http://za.co.testws.interfaces" /> </output> </operation> </binding> <service name="ProcessClaim"> <port name="RequestServicePort" binding="tns:RequestServiceBinding"> <soap:address location="REPLACE_WITH_ACTUAL_URL" /> </port> </service> </definitions>
The generated jaxrp-mapping file
<?xml version="1.0" encoding="UTF-8"?> <java-wsdl-mapping xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="1.1" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://www.ibm.com/webservices/xsd/j2ee_jaxrpc_mapping_1_1.xsd"> <package-mapping> <package-type>za.co.testws.interfaces</package-type> <namespaceURI>http://za.co.testws.interfaces/types</namespaceURI> </package-mapping> <package-mapping> <package-type>za.co.testws.interfaces</package-type> <namespaceURI>http://za.co.testws.interfaces</namespaceURI> </package-mapping> <java-xml-type-mapping> <java-type>za.co.testws.services.Message</java-type> <root-type-qname xmlns:typeNS="http://za.co.testws.interfaces/types"> typeNS:Message </root-type-qname> <qname-scope>complexType</qname-scope> <variable-mapping> <java-variable-name>name</java-variable-name> <xml-element-name>name</xml-element-name> </variable-mapping> <variable-mapping> <java-variable-name>status</java-variable-name> <xml-element-name>status</xml-element-name> </variable-mapping> </java-xml-type-mapping> <service-interface-mapping> <service-interface> za.co.testws.interfaces.ProcessClaim </service-interface> <wsdl-service-name xmlns:serviceNS="http://za.co.testws.interfaces"> serviceNS:ProcessClaim </wsdl-service-name> <port-mapping> <port-name>RequestServicePort</port-name> <java-port-name>RequestServicePort</java-port-name> </port-mapping> </service-interface-mapping> <service-endpoint-interface-mapping> <service-endpoint-interface> za.co.testws.interfaces.RequestService </service-endpoint-interface> <wsdl-port-type xmlns:portTypeNS="http://za.co.testws.interfaces"> portTypeNS:RequestService </wsdl-port-type> <wsdl-binding xmlns:bindingNS="http://za.co.testws.interfaces"> bindingNS:RequestServiceBinding </wsdl-binding> <service-endpoint-method-mapping> <java-method-name>processClaim</java-method-name> <wsdl-operation>processClaim</wsdl-operation> <method-param-parts-mapping> <param-position>0</param-position> <param-type>za.co.testws.services.Message</param-type> <wsdl-message-mapping> <wsdl-message xmlns:wsdlMsgNS="http://za.co.testws.interfaces"> wsdlMsgNS:RequestService_processClaim </wsdl-message> <wsdl-message-part-name>Message_1</wsdl-message-part-name> <parameter-mode>IN</parameter-mode> </wsdl-message-mapping> </method-param-parts-mapping> <wsdl-return-value-mapping> <method-return-value> za.co.testws.services.Message </method-return-value> <wsdl-message xmlns:wsdlMsgNS="http://za.co.testws.interfaces"> wsdlMsgNS:RequestService_processClaimResponse </wsdl-message> <wsdl-message-part-name>result</wsdl-message-part-name> </wsdl-return-value-mapping> </service-endpoint-method-mapping> </service-endpoint-interface-mapping> </java-wsdl-mapping>
My webservices.xml:
<webservices xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:impl="http://com.underworld.crimeportal/ws4ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://www.ibm.com/webservices/xsd/j2ee_web_services_1_1.xsd" version="1.1"> <webservice-description> <webservice-description-name>RequestServiceEJB</webservice-description-name> <wsdl-file>META-INF/wsdl/processClaim.wsdl</wsdl-file> <jaxrpc-mapping-file>META-INF/jaxrpc-mapping.xml</jaxrpc-mapping-file> <port-component> <port-component-name>RequestService</port-component-name> <wsdl-port>impl:RequestServicePort</wsdl-port> <service-endpoint-interface>za.co.testws.interfaces.RequestService</service-endpoint-interface> <service-impl-bean> <ejb-link>SubmitRequestEJB</ejb-link> </service-impl-bean> </port-component> </webservice-description> </webservices>
The ejb-jar.xml
<ejb-jar xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/ejb-jar_2_1.xsd" version="2.1"> <enterprise-beans> <session> <ejb-name>SubmitRequestEJB</ejb-name> <service-endpoint>za.co.testws.interfaces.RequestService</service-endpoint> <ejb-class>za.co.testws.services.RequestServiceEJB</ejb-class> <session-type>Stateless</session-type> <transaction-type>Container</transaction-type> </session> </enterprise-beans> </ejb-jar>
The stacktrace:
2006-12-10 15:40:35,812 DEBUG [org.jboss.deployment.MainDeployer] (ScannerThread) Starting deployment of package: file:/C:/jboss-4.0.4.GA/server/all/deploy/testws.jar 2006-12-10 15:40:35,812 DEBUG [org.jboss.deployment.MainDeployer] (ScannerThread) Starting deployment (init step) of package at: file:/C:/jboss-4.0.4.GA/server/all/deploy/testws.jar 2006-12-10 15:40:35,812 DEBUG [org.jboss.deployment.MainDeployer] (ScannerThread) Copying file:/C:/jboss-4.0.4.GA/server/all/deploy/testws.jar -> C:\jboss-4.0.4.GA\server\all\tmp\deploy\tmp58316testws.jar 2006-12-10 15:40:35,828 DEBUG [org.jboss.deployment.MainDeployer] (ScannerThread) using deployer MBeanProxyExt[jboss.ejb:service=EJBDeployer] 2006-12-10 15:40:35,828 DEBUG [org.jboss.ejb.EJBDeployer] (ScannerThread) init, testws.jar 2006-12-10 15:40:35,828 DEBUG [org.jboss.ejb.EJBDeployer] (ScannerThread) looking for nested deployments in : file:/C:/jboss-4.0.4.GA/server/all/deploy/testws.jar 2006-12-10 15:40:35,828 DEBUG [org.jboss.deployment.DeploymentInfo] (ScannerThread) createLoaderRepository from config: LoaderRepositoryConfig(repositoryName: JMImplementation:service=LoaderRepository,name=Default, repositoryClassName: null, configParserClassName: null, repositoryConfig: null) 2006-12-10 15:40:35,828 DEBUG [org.jboss.mx.loading.RepositoryClassLoader] (ScannerThread) setRepository, repository=org.jboss.mx.loading.UnifiedLoaderRepository3@1be2d65, cl=org.jboss.mx.loading.UnifiedClassLoader3@1babddb{ url=file:/C:/jboss-4.0.4.GA/server/all/tmp/deploy/tmp58316testws.jar ,addedOrder=0} 2006-12-10 15:40:35,828 DEBUG [org.jboss.mx.loading.RepositoryClassLoader] (ScannerThread) setRepository, repository=org.jboss.mx.loading.UnifiedLoaderRepository3@1be2d65, cl=org.jboss.mx.loading.UnifiedClassLoader3@1babddb{ url=file:/C:/jboss-4.0.4.GA/server/all/tmp/deploy/tmp58316testws.jar ,addedOrder=0} 2006-12-10 15:40:35,828 DEBUG [org.jboss.mx.loading.UnifiedLoaderRepository3] (ScannerThread) Adding org.jboss.mx.loading.UnifiedClassLoader3@1babddb{ url=file:/C:/jboss-4.0.4.GA/server/all/tmp/deploy/tmp58316testws.jar ,addedOrder=0} 2006-12-10 15:40:35,828 DEBUG [org.jboss.deployment.MainDeployer] (ScannerThread) found 0 subpackages of file:/C:/jboss-4.0.4.GA/server/all/deploy/testws.jar 2006-12-10 15:40:35,828 DEBUG [org.jboss.deployment.MainDeployer] (ScannerThread) Watching new file: file:/C:/jboss-4.0.4.GA/server/all/deploy/testws.jar 2006-12-10 15:40:35,828 DEBUG [org.jboss.deployment.MainDeployer] (ScannerThread) create step for deployment file:/C:/jboss-4.0.4.GA/server/all/deploy/testws.jar 2006-12-10 15:40:35,828 DEBUG [org.jboss.ws.server.WebServiceDeployerEJB21] (ScannerThread) create: file:/C:/jboss-4.0.4.GA/server/all/deploy/testws.jar 2006-12-10 15:40:35,828 DEBUG [org.jboss.ejb.EJBDeployer] (ScannerThread) create, testws.jar 2006-12-10 15:40:35,890 DEBUG [org.jboss.ejb.EJBDeployer] (ScannerThread) Verifying file:/C:/jboss-4.0.4.GA/server/all/deploy/testws.jar 2006-12-10 15:40:35,921 DEBUG [org.jboss.ejb.EJBDeployer.verifier] (ScannerThread) Bean checked: SubmitRequestEJB: Verified. 2006-12-10 15:40:35,953 DEBUG [org.jboss.ejb.EJBDeployer] (ScannerThread) Deploying: file:/C:/jboss-4.0.4.GA/server/all/deploy/testws.jar 2006-12-10 15:40:35,953 DEBUG [org.jboss.system.ServiceController] (ScannerThread) Creating service jboss.j2ee:service=EjbModule,module=testws.jar 2006-12-10 15:40:35,953 DEBUG [org.jboss.ejb.EjbModule] (ScannerThread) Creating jboss.j2ee:service=EjbModule,module=testws.jar 2006-12-10 15:40:35,953 DEBUG [org.jboss.ejb.EjbModule] (ScannerThread) createService, begin 2006-12-10 15:40:35,953 INFO [org.jboss.ejb.EjbModule] (ScannerThread) Deploying SubmitRequestEJB 2006-12-10 15:40:35,984 DEBUG [org.jboss.ejb.EjbModule] (ScannerThread) Creating WebClassLoader of class org.jboss.web.WebClassLoader 2006-12-10 15:40:36,031 DEBUG [org.jboss.ejb.EjbModule] (ScannerThread) creating binding for SubmitRequestEJB:stateless-rmi-invoker 2006-12-10 15:40:36,046 DEBUG [org.jboss.system.ServiceController] (ScannerThread) Creating service jboss.j2ee:jndiName=local/SubmitRequestEJB@21116960,service=EJB 2006-12-10 15:40:36,046 DEBUG [org.jboss.system.ServiceController] (ScannerThread) adding depends in ServiceController.register: [] 2006-12-10 15:40:36,046 DEBUG [org.jboss.ejb.StatelessSessionContainer] (ScannerThread) Creating jboss.j2ee:jndiName=local/SubmitRequestEJB@21116960,service=EJB 2006-12-10 15:40:36,046 DEBUG [org.jboss.ejb.StatelessSessionContainer] (ScannerThread) Mapped processClaim HASH -877640360to public za.co.testws.services.Message za.co.testws.services.RequestServiceEJB.processClaim(za.co.testws.services.Message) throws java.rmi.RemoteException 2006-12-10 15:40:36,062 DEBUG [org.jboss.system.ServiceController] (ScannerThread) Creating service jboss.j2ee:service=EJB,plugin=pool,jndiName=local/SubmitRequestEJB@21116960 2006-12-10 15:40:36,062 DEBUG [org.jboss.ejb.plugins.StatelessSessionInstancePool] (ScannerThread) Creating jboss.j2ee:service=EJB,plugin=pool,jndiName=local/SubmitRequestEJB@21116960 2006-12-10 15:40:36,062 DEBUG [org.jboss.ejb.plugins.StatelessSessionInstancePool] (ScannerThread) Created jboss.j2ee:service=EJB,plugin=pool,jndiName=local/SubmitRequestEJB@21116960 2006-12-10 15:40:36,062 DEBUG [org.jboss.system.ServiceController] (ScannerThread) Creating dependent components for: jboss.j2ee:service=EJB,plugin=pool,jndiName=local/SubmitRequestEJB@21116960 dependents are: [] 2006-12-10 15:40:36,062 DEBUG [org.jboss.ejb.StatelessSessionContainer] (ScannerThread) Created jboss.j2ee:jndiName=local/SubmitRequestEJB@21116960,service=EJB 2006-12-10 15:40:36,062 DEBUG [org.jboss.system.ServiceController] (ScannerThread) Creating dependent components for: jboss.j2ee:jndiName=local/SubmitRequestEJB@21116960,service=EJB dependents are: [] 2006-12-10 15:40:36,062 DEBUG [org.jboss.ejb.EjbModule] (ScannerThread) Bound jmxName=jboss.j2ee:jndiName=local/SubmitRequestEJB@21116960,service=EJB, hash=-1549964595into Registry 2006-12-10 15:40:36,062 DEBUG [org.jboss.ejb.EjbModule] (ScannerThread) Created jboss.j2ee:service=EjbModule,module=testws.jar 2006-12-10 15:40:36,062 DEBUG [org.jboss.system.ServiceController] (ScannerThread) Creating dependent components for: jboss.j2ee:service=EjbModule,module=testws.jar dependents are: [] 2006-12-10 15:40:36,078 DEBUG [org.jboss.ws.metadata.JSR109ServerMetaDataBuilder] (ScannerThread) START buildMetaData: [url=jar:file:/C:/jboss-4.0.4.GA/server/all/tmp/deploy/tmp58316testws.jar!/META-INF/webservices.xml] 2006-12-10 15:40:36,203 DEBUG [org.jboss.ws.metadata.wsdl.WSDLDefinitionsFactory] (ScannerThread) parse: jar:file:/C:/jboss-4.0.4.GA/server/all/tmp/deploy/tmp58316testws.jar!/META-INF/wsdl/processClaim.wsdl 2006-12-10 15:40:36,984 DEBUG [org.jboss.ws.metadata.wsdl.WSDLInterface] (ScannerThread) new WSDLInterface 2006-12-10 15:40:36,984 DEBUG [org.jboss.ws.metadata.wsdl.WSDLInterface] (ScannerThread) setName: RequestService 2006-12-10 15:40:36,984 DEBUG [org.jboss.ws.metadata.wsdl.WSDLInterface] (ScannerThread) setQName: {http://za.co.testws.interfaces}RequestService 2006-12-10 15:40:36,984 ERROR [org.jboss.deployment.MainDeployer] (ScannerThread) Could not create deployment: file:/C:/jboss-4.0.4.GA/server/all/deploy/testws.jar java.lang.NullPointerException at org.jboss.ws.metadata.wsdl.WSDL11Reader.processOperationInput(WSDL11Reader.java:474) at org.jboss.ws.metadata.wsdl.WSDL11Reader.processPortTypeOperations(WSDL11Reader.java:460) at org.jboss.ws.metadata.wsdl.WSDL11Reader.processPortType(WSDL11Reader.java:446) at org.jboss.ws.metadata.wsdl.WSDL11Reader.processBinding(WSDL11Reader.java:725) at org.jboss.ws.metadata.wsdl.WSDL11Reader.processPort(WSDL11Reader.java:1068) at org.jboss.ws.metadata.wsdl.WSDL11Reader.processPorts(WSDL11Reader.java:1051) at org.jboss.ws.metadata.wsdl.WSDL11Reader.processServices(WSDL11Reader.java:1024) at org.jboss.ws.metadata.wsdl.WSDL11Reader.processDefinition(WSDL11Reader.java:119) at org.jboss.ws.metadata.wsdl.WSDLDefinitionsFactory.parse(WSDLDefinitionsFactory.java:145) at org.jboss.ws.metadata.ServiceMetaData.getWsdlDefinitions(ServiceMetaData.java:273) at org.jboss.ws.metadata.JSR109ServerMetaDataBuilder.buildMetaData(JSR109ServerMetaDataBuilder.java:111) at org.jboss.ws.server.WebServiceDeployerEJB21.createWebServicesMetaData(WebServiceDeployerEJB21.java:113) at org.jboss.ws.server.WebServiceDeployer.create(WebServiceDeployer.java:103) at org.jboss.deployment.SubDeployerInterceptorSupport$XMBeanInterceptor.create(SubDeployerInterceptorSupport.java:180) at org.jboss.deployment.SubDeployerInterceptor.invoke(SubDeployerInterceptor.java:91) at org.jboss.mx.server.Invocation.invoke(Invocation.java:88) at org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.java:264) at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:659) at org.jboss.mx.util.MBeanProxyExt.invoke(MBeanProxyExt.java:210) at $Proxy44.create(Unknown Source) at org.jboss.deployment.MainDeployer.create(MainDeployer.java:953) at org.jboss.deployment.MainDeployer.deploy(MainDeployer.java:807) at org.jboss.deployment.MainDeployer.deploy(MainDeployer.java:771) at sun.reflect.GeneratedMethodAccessor9.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:585) at org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatcher.java:155) at org.jboss.mx.server.Invocation.dispatch(Invocation.java:94) at org.jboss.mx.interceptor.AbstractInterceptor.invoke(AbstractInterceptor.java:133) at org.jboss.mx.server.Invocation.invoke(Invocation.java:88) at org.jboss.mx.interceptor.ModelMBeanOperationInterceptor.invoke(ModelMBeanOperationInterceptor.java:142) at org.jboss.mx.server.Invocation.invoke(Invocation.java:88) at org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.java:264) at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:659) at org.jboss.mx.util.MBeanProxyExt.invoke(MBeanProxyExt.java:210) at $Proxy6.deploy(Unknown Source) at org.jboss.deployment.scanner.URLDeploymentScanner.deploy(URLDeploymentScanner.java:421) at org.jboss.deployment.scanner.URLDeploymentScanner.scan(URLDeploymentScanner.java:634) at org.jboss.deployment.scanner.AbstractDeploymentScanner$ScannerThread.doScan(AbstractDeploymentScanner.java:263) at org.jboss.deployment.scanner.AbstractDeploymentScanner$ScannerThread.loop(AbstractDeploymentScanner.java:274) at org.jboss.deployment.scanner.AbstractDeploymentScanner$ScannerThread.run(AbstractDeploymentScanner.java:225) 2006-12-10 15:40:36,984 DEBUG [org.jboss.deployment.scanner.URLDeploymentScanner] (ScannerThread) Failed to deploy: org.jboss.deployment.scanner.URLDeploymentScanner$DeployedURL@1f511228{ url=file:/C:/jboss-4.0.4.GA/server/all/deploy/testws.jar, deployedLastModified=0 }
Any help will be appreaciated.
Thanks
Nico