wscompile client fails to invoke JBossWS webservice
cartola Oct 11, 2006 8:02 AMHello,
I?ve been developing a web service in JBoss 4.0.4 over JDK 1.5.
My service is document/literal and runs on JBossWS.
I?ve successfully deployed the service.
I?ve generate the client stubs using wscompile (1.1.3, build R1) which comes in JWSDP 2.0
<target name="java-wscompile" depends="set-wscompile" description="Runs wscompile to generate the WSDL file and mapping file"> <antcall target="run-wscompile"> <param name="param1" value=" -gen:client -keep -d genSTUBS -verbose ${basedir}\support_files\wsdl\configWSDL.xml" /> </antcall> </target>
When I invoke the web service using this client I get the following exception on the server:
ERROR [SOAPFaultExceptionHelper] SOAP request exception javax.xml.rpc.soap.SOAPFaultException: Endpoint {http://pt.ptinovacao.pinos.pm/MRC}MRC_IF_WSPort does not contain operation meta data for: {http://schemas.xmlsoap.org/soap/envelope/}Envelope at org.jboss.ws.server.ServiceEndpointInvoker.getDispatchDestination(ServiceEndpointInvoker.java:175) at org.jboss.ws.server.ServiceEndpointInvoker.invoke(ServiceEndpointInvoker.java:110) at org.jboss.ws.server.ServiceEndpoint.handleRequest(ServiceEndpoint.java:234) at org.jboss.ws.server.ServiceEndpointServlet.doPost(ServiceEndpointServlet.java:120) at javax.servlet.http.HttpServlet.service(HttpServlet.java:717) at javax.servlet.http.HttpServlet.service(HttpServlet.java:810) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173) at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178) at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:175) at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:74) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148) at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:869) at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:664) at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527) at org.apache.tomcat.util.net.MasterSlaveWorkerThread.run(MasterSlaveWorkerThread.java:112) at java.lang.Thread.run(Thread.java:595)
I?ve used TCPmon to catch the outgoing SOAP message:
<env:Envelope xmlns:env="http://schemas.xmlsoap.org/soap/envelope/"> <env:Header/> <env:Body> <env:Envelope xmlns:enc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:env="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns0="http://pt.ptinovacao.pinos.mrc/MRC_Types" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <env:Body> <ns0:getLogsNaoActualizados xmlns:ns0="http://pt.ptinovacao.pinos.mrc/MRC_Types"/> </env:Body> </env:Envelope> </env:Body> </env:Envelope>
If I use XMLSPY to invoke the web service it works fine.
Also, if I use a JBoss-IDE generated client (uses axis) it also works fine.
SOAP request of XMLSPY:
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> <SOAP-ENV:Body> <m:getLogsNaoActualizados xmlns:m="http://pt.ptinovacao.pinos.mrc/MRC_Types"/> </SOAP-ENV:Body> </SOAP-ENV:Envelope>
SOAP request of JBoss-IDE client:
<?xml version="1.0" encoding="UTF-8"?> <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <soapenv:Body> <getLogsNaoActualizados xmlns="http://pt.ptinovacao.pinos.mrc/MRC_Types"/> </soapenv:Body> </soapenv:Envelope>
Do you have any ideas on solving this problem?
My intention was to build a JBossWS client who wouldn?t use axis libraries. Is that possible?
Thanks in advance.