Daniel, Please have a look at AXIS2-4611 [1]. If deploying as a servicejar is not an option for you, feel free to vote for the issue and leave a comment.
Andreas [1] https://issues.apache.org/jira/browse/AXIS2-4611 On Wed, Jan 27, 2010 at 21:32, Daniel Walsh <walsh94...@gmail.com> wrote: > > I have written a simple hello application in Axis2 JAX-WS and when I run my > client I am getting an error that the service class cannot be found. In this > email I'm including the exact message, my services.xml file, a jar output of > my aar file, my wsdl file, my schema file, a snippet from the available > services webpage and a stacktrace from catalina.out. > > I wrote the services.xml, the schema and the wsdl files by hand and generated > all the classes (except HelloClient, my client class) by "wsimport -keep > -verbose hello.wsdl". > > I have tried every Google search I can think of and have looked at several > tutorials and dozens of mail archives without finding out the answer. If you > can help, I would really appreciate it. > > ------------------------------------------------------------------------------------------------------------------------------------------------------ > > The error message I get when I run the client (java -cp HelloService.jar > com/wb/hello/HelloClient) is: > > "Exception in thread "main" javax.xml.ws.soap.SOAPFaultException: > java.lang.RuntimeException: The service class cannot be found for this > AxisService." > > ------------------------------------------------------------------------------------------------------------------------------------------------------ > > My services.xml file is simple: > > <service name="HelloService"> > <parameter name="ServiceClass">com.wb.hello.HelloService</parameter> > <operation name="hello"> > <messageReceiver mep="http://www.w3.org/2004/08/wsdl/in-out" > class="org.apache.axis2.jaxws.server.JAXWSMessageReceiver"/> > </operation> > </service> > > ------------------------------------------------------------------------------------------------------------------------------------------------------ > > When I go to /cygdrive/c/tomcat-6.0.20/webapps/axis2/WEB-INF/services and jar > the aar file, the service class is there: > > $ jar tvf HelloService.aar > 0 Tue Jan 26 14:41:52 PST 2010 META-INF/ > 71 Tue Jan 26 14:41:52 PST 2010 META-INF/MANIFEST.MF > 1287 Tue Jan 26 14:41:52 PST 2010 com/wb/hello/HelloClient.class > 886 Tue Jan 26 14:41:52 PST 2010 com/wb/hello/HelloPort.class > 898 Tue Jan 26 14:41:52 PST 2010 com/wb/hello/HelloPortType.class > 752 Tue Jan 26 14:41:52 PST 2010 com/wb/hello/HelloRequestType.class > 758 Tue Jan 26 14:41:52 PST 2010 com/wb/hello/HelloResponseType.class > 2079 Tue Jan 26 14:41:52 PST 2010 com/wb/hello/HelloService.class > 1708 Tue Jan 26 14:41:52 PST 2010 com/wb/hello/ObjectFactory.class > 230 Tue Jan 26 14:41:52 PST 2010 com/wb/hello/package-info.class > 1794 Tue Jan 26 14:41:50 PST 2010 META-INF/hello.wsdl > 805 Tue Jan 26 14:41:50 PST 2010 META-INF/helloSchema.xsd > 301 Tue Jan 26 14:41:36 PST 2010 META-INF/services.xml > > ------------------------------------------------------------------------------------------------------------------------------------------------------ > > My wsdl file is: > > <?xml version="1.0" encoding="UTF-8" standalone="yes"?> > <definitions targetNamespace="com/wb/hello" > name="hello" > xmlns="http://schemas.xmlsoap.org/wsdl/" > xmlns:tns="com/wb/hello" > xmlns:xsd="http://www.w3.org/2001/XMLSchema" > xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" > xmlns:wsa="http://schemas.xmlsoap.org/ws/2004/08/addressing" > > > <!-- define schema elements for helloRequest, helloResponse --> > <types> > <xsd:schema> > <xsd:import namespace="com/wb/hello" schemaLocation="helloSchema.xsd"/> > </xsd:schema> > </types> > > <!-- define messages for helloRequest, helloResponse elements --> > <message name="helloRequestMessage"> > <part name="name" element="tns:helloRequestElement"/> > </message> > > <message name="helloResponseMessage"> > <part name="result" element="tns:helloResponseElement"/> > </message> > > <!-- define port for helloRequest, hello Response messages --> > <portType name="helloPort"> > <operation name="hello"> > <input message="tns:helloRequestMessage"/> > <output message="tns:helloResponseMessage"/> > </operation> > </portType> > > <!-- define binding for hello operation --> > <binding name="helloBinding" type="tns:helloPort"> > <soap:binding transport="http://schemas.xmlsoap.org/soap/http" > style="document"/> > <operation name="hello"> > <soap:operation soapAction=""/> > <input> > <soap:body use="literal"/> > </input> > <output> > <soap:body use="literal"/> > </output> > </operation> > </binding> > > <!-- finally, define the service --> > <service name="HelloService"> > <port name="helloPort" binding="tns:helloBinding"> > <soap:address > location="http://localhost:8080/axis2/services/HelloService"/> > </port> > </service> > > </definitions> > > ------------------------------------------------------------------------------------------------------------------------------------------------------ > > My schema file is: > > <?xml version="1.0" encoding="UTF-8" standalone="yes"?> > <xsd:schema targetNamespace="com/wb/hello" > xmlns:tns="com/wb/hello" > xmlns:xsd="http://www.w3.org/2001/XMLSchema"> > > <!-- define types for helloRequest, helloResponse --> > <xsd:complexType name="helloRequestType"> > <xsd:sequence> > <xsd:element name="request" type="xsd:string" minOccurs="1"/> > </xsd:sequence> > </xsd:complexType> > > <xsd:complexType name="helloResponseType"> > <xsd:sequence> > <xsd:element name="response" type="xsd:string" minOccurs="1"/> > </xsd:sequence> > </xsd:complexType> > > <!-- define elements for helloRequest, helloResponse --> > <xsd:element name="helloRequestElement" type="tns:helloRequestType"/> > <xsd:element name="helloResponseElement" type="tns:helloResponseType"/> > > </xsd:schema> > > ------------------------------------------------------------------------------------------------------------------------------------------------------ > > When I point my browser to http://localhost:8080/axis2/services/listServices > it shows it as available: > > Back Home | Refresh > > > Available services > > HelloService > > Service EPR : http://localhost:8080/axis2/services/HelloService > > Service Description : HelloService > > Service Status : Active > Available Operations > > hello > > ------------------------------------------------------------------------------------------------------------------------------------------------------ > > And for what it's worth, /cygdrive/c/tomcat-6.0.20/logs/catalina.out includes: > > [ERROR] The service class cannot be found for this AxisService. > java.lang.RuntimeException: The service class cannot be found for this > AxisServi > ce. > at > org.apache.axis2.jaxws.server.JAXWSMessageReceiver.receive(JAXWSMessa > geReceiver.java:95) > at org.apache.axis2.engine.AxisEngine.receive(AxisEngine.java:173) > at > org.apache.axis2.transport.http.HTTPTransportUtils.processHTTPPostReq > uest(HTTPTransportUtils.java:167) > at > org.apache.axis2.transport.http.AxisServlet.doPost(AxisServlet.java:1 > 42) > at javax.servlet.http.HttpServlet.service(HttpServlet.java:637) > at javax.servlet.http.HttpServlet.service(HttpServlet.java:717) > at > org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Appl > icationFilterChain.java:290) > at > org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationF > ilterChain.java:206) > at > org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperV > alve.java:233) > at > org.apache.catalina.core.StandardContextValve.invoke(StandardContextV > alve.java:191) > at > org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.j > ava:128) > at > org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.j > ava:102) > at > org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineVal > ve.java:109) > at > org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.jav > a:293) > at > org.apache.coyote.http11.Http11Processor.process(Http11Processor.java > :849) > at > org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.proce > ss(Http11Protocol.java:583) > at > org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:45 > 4) > at java.lang.Thread.run(Thread.java:619) >