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)
>

Reply via email to