Problem with using custom datatypes in WSTypeMapping
mette Jan 10, 2005 1:45 PMI am creating a document/literal web service, and I wish to use my own custom classes for the types used by the web service. I have therefore gone the path described in:
http://www.jboss.org/wiki/Wiki.jsp?page=WSTypeMapping
However, I am having a hard time getting it to work. Specifically, it seems JBoss cannot find my classes when the web service is deployed. I am getting a number of the following types of warnings:
[exec] 09:56:46,845 WARN [TypeMappingDescription] Class not found: com.xyz.RegisterSensor
however, at the end of it it tells me the web service was deployed.
Then, when I go to the WS4EE page in JBoss, and click view the list of deployed web services, the page only displays "And now... Some Services", while in the log I see a stack trace:
[exec] 10:09:03,374 DEBUG [ServiceEndpointServlet] doGet: http://localhost:8080/ws4ee/services
[exec] 10:09:03,414 DEBUG [ServiceEndpointServlet] serviceName: null
[exec] 10:09:03,414 DEBUG [ServiceEndpointServlet] Report available services
[exec] 10:09:03,414 DEBUG [InvokerProvider] initServiceDesc: service=SensorRegistryServiceJSE
[exec] 10:09:03,414 DEBUG [HandlerChainBaseImpl] Create a handler chain for roles: []
[exec] 10:09:03,414 DEBUG [HandlerChainBaseImpl] init: [config=null]
[exec] 10:09:03,645 ERROR [Engine] StandardWrapperValve[ServiceEndpointServlet]: Servlet.service() for servlet ServiceEndpointServlet threw exception
[exec] java.lang.NoClassDefFoundError: com/xyz/RegisterSensor
[exec] at java.lang.Class.getDeclaredMethods0(Native Method)
[exec] at java.lang.Class.privateGetDeclaredMethods(Class.java:1647)
[exec] at java.lang.Class.getDeclaredMethod(Class.java:1254)
[exec] at org.apache.axis.description.ServiceDesc.loadServiceDescByIntrospection(ServiceDesc.java:938)
[exec] at org.apache.axis.providers.java.JavaProvider.initServiceDesc(JavaProvider.java:730)
[exec] at org.jboss.webservice.server.InvokerProvider.initServiceDesc(InvokerProvider.java:102)
[exec] at org.apache.axis.handlers.soap.SOAPService.getInitializedServiceDesc(SOAPService.java:389)
[exec] at org.apache.axis.deployment.wsdd.WSDDService.makeNewInstance(WSDDService.java:561)
[exec] at org.apache.axis.deployment.wsdd.WSDDDeployment.getDeployedServices(WSDDDeployment.java:619)
[exec] at org.apache.axis.configuration.FileProvider.getDeployedServices(FileProvider.java:358)
[exec] at org.jboss.webservice.server.ServiceEndpointServlet.reportAvailableServices(ServiceEndpointServlet.java:184)
[exec] at org.jboss.webservice.server.ServiceEndpointServlet.doGet(ServiceEndpointServlet.java:84)
[exec] at javax.servlet.http.HttpServlet.service(HttpServlet.java:697)
[exec] at org.apache.axis.transport.http.AxisServletBase.service(AxisServletBase.java:372)
[exec] at javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
[exec] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:237)
[exec] at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:157)
[exec] at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:214)
[exec] at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
[exec] at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
[exec] at org.apache.catalina.core.StandardContextValve.invokeInternal(StandardContextValve.java:198)
[exec] at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:152)
[exec] at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
[exec] at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:540)
[exec] at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:102)
[exec] at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:157)
[exec] at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:102)
[exec] at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
[exec] at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:137)
[exec] at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
[exec] at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:118)
[exec] at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:102)
[exec] at org.jboss.web.tomcat.tc5.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:122)
[exec] at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:102)
[exec] at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
[exec] at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
[exec] at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
[exec] at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
[exec] at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:929)
[exec] at org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:160)
[exec] at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:799)
[exec] at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:705)
[exec] at org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:577)
[exec] at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:683)
[exec] at java.lang.Thread.run(Thread.java:534)
The class in question, and all the other custom type classes I am getting warnings about during deployment are all located in a jar under WEB-INF/lib in my war, just like my JSE classes (which is located by JBoss), and I have checked and double checked the package class names, and they match. I even tried putting all the classes in question in the same jar as the one my JSE classes are in, but still to no avail. I am really stuck, as I cannot see what I am doing wrong. Please help!