0 Replies Latest reply on May 12, 2010 4:05 AM by Mark Raa

    JBoss Webservice: Endpoint does not contain operation meta data

    Mark Raa Newbie

      Hey Guys,

       

      I have deployed a webservice from Eclipse in Java and once it has been successfully deployed, I can browse the WSDL and see the XML in my browser.

       

      However, when I try invoke this service sending it a string parameter, i get the following error:

       

       

      08:52:09,301 ERROR [SOAPFaultHelperJAXRPC] SOAP request exception
      javax.xml.rpc.soap.SOAPFaultException: Endpoint {http://127.0.0.1:8080/Tws/TestW
      s}TestWsPort does not contain operation meta data for: {http://dhanago.test.com/
      }greet
              at org.jboss.ws.core.jaxrpc.SOAPFaultHelperJAXRPC.exceptionToFaultMessag
      e(SOAPFaultHelperJAXRPC.java:189)
              at org.jboss.ws.core.jaxws.SOAPFaultHelperJAXWS.exceptionToFaultMessage(
      SOAPFaultHelperJAXWS.java:183)
              at org.jboss.ws.core.jaxws.binding.SOAP11BindingJAXWS.createFaultMessage
      FromException(SOAP11BindingJAXWS.java:102)
              at org.jboss.ws.core.CommonSOAPBinding.bindFaultMessage(CommonSOAPBindin
      g.java:650)
              at org.jboss.ws.core.server.ServiceEndpointInvoker.invoke(ServiceEndpoin
      tInvoker.java:283)
              at org.jboss.wsf.stack.jbws.RequestHandlerImpl.processRequest(RequestHan
      dlerImpl.java:468)
              at org.jboss.wsf.stack.jbws.RequestHandlerImpl.handleRequest(RequestHand
      lerImpl.java:293)
              at org.jboss.wsf.stack.jbws.RequestHandlerImpl.doPost(RequestHandlerImpl
      .java:203)
              at org.jboss.wsf.stack.jbws.RequestHandlerImpl.handleHttpRequest(Request
      HandlerImpl.java:129)
              at org.jboss.wsf.common.servlet.AbstractEndpointServlet.service(Abstract
      EndpointServlet.java:85)
              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.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFi
      lter.java:96)
              at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Appl
      icationFilterChain.java:235)
              at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationF
      ilterChain.java:206)
              at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperV
      alve.java:235)
              at org.apache.catalina.core.StandardContextValve.invoke(StandardContextV
      alve.java:191)
              at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(Securit
      yAssociationValve.java:190)
              at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValv
      e.java:92)
              at org.jboss.web.tomcat.security.SecurityContextEstablishmentValve.proce
      ss(SecurityContextEstablishmentValve.java:126)
              at org.jboss.web.tomcat.security.SecurityContextEstablishmentValve.invok
      e(SecurityContextEstablishmentValve.java:70)
              at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.j
      ava:127)
              at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.j
      ava:102)
              at org.jboss.web.tomcat.service.jca.CachedConnectionValve.invoke(CachedC
      onnectionValve.java:158)
              at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineVal
      ve.java:109)
              at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.jav
      a:330)
              at org.apache.coyote.http11.Http11AprProcessor.process(Http11AprProcesso
      r.java:905)
              at org.apache.coyote.http11.Http11AprProtocol$Http11ConnectionHandler.pr
      ocess(Http11AprProtocol.java:592)
              at org.apache.tomcat.util.net.AprEndpoint$Worker.run(AprEndpoint.java:20
      36)
              at java.lang.Thread.run(Thread.java:619)
      
      
      

       

      the code im using  to perform the invokation is:

       

       

      import javax.xml.namespace.QName;
      import org.apache.axis.client.Call;
      import org.apache.axis.client.Service;
      
      public class webservice
      {
           public static void main(String[] args)
           {
                try
                {
                   String endpoint = "http://localhost:8080/Tws/TestWs?wsdl";
                   
                   Service service = new Service();
                   Call call = (Call) service.createCall();
                   
                   call.setTargetEndpointAddress(new java.net.URL(endpoint));
                   call.setOperationName(new QName("http://schemas.xmlsoap.org", "greet"));
                   
                   Object ret[] = (Object[]) call.invoke(new Object[] { "Joe" } );
                   
                   for (int i = 0; i <  ret.length; i ++)
                   {
                       System.out.println("RESPONSE " + (i + 1) + ": " + ret[i]);
                   }
                }
                catch (Exception e)
                {
                     e.printStackTrace();
                    System.err.println(e.toString());
                }
           }
      }
      

       

      and the WSDL when opened in my browser looks as follows:

       

       

      <definitions name='TestWsService' targetNamespace='http://127.0.0.1:8080/Tws/TestWs' xmlns='http://schemas.xmlsoap.org/wsdl/' xmlns:soap='http://schemas.xmlsoap.org/wsdl/soap/' xmlns:tns='http://127.0.0.1:8080/Tws/TestWs' xmlns:xsd='http://www.w3.org/2001/XMLSchema'> 
      
      
       <types> 
      
      
        <xs:schema targetNamespace='http://127.0.0.1:8080/Tws/TestWs' version='1.0' xmlns:tns='http://127.0.0.1:8080/Tws/TestWs' xmlns:xs='http://www.w3.org/2001/XMLSchema'> 
      
      
         <xs:element name='greet' type='tns:greet'/> 
      
      
         <xs:element name='greetResponse' type='tns:greetResponse'/> 
      
      
         <xs:complexType name='greet'> 
      
      
          <xs:sequence> 
      
      
           <xs:element minOccurs='0' name='name' type='xs:string'/> 
      
      
          </xs:sequence> 
      
      
         </xs:complexType> 
      
      
         <xs:complexType name='greetResponse'> 
      
      
          <xs:sequence> 
      
      
           <xs:element minOccurs='0' name='return' type='xs:string'/> 
      
      
          </xs:sequence> 
      
      
         </xs:complexType> 
      
      
        </xs:schema> 
      
      
       </types> 
      
      
       <message name='TestWs_greet'> 
      
      
        <part element='tns:greet' name='greet'></part> 
      
      
       </message> 
      
      
       <message name='TestWs_greetResponse'> 
      
      
        <part element='tns:greetResponse' name='greetResponse'></part> 
      
      
       </message> 
      
      
       <portType name='TestWs'> 
      
      
        <operation name='greet' parameterOrder='greet'> 
      
      
         <input message='tns:TestWs_greet'></input> 
      
      
         <output message='tns:TestWs_greetResponse'></output> 
      
      
        </operation> 
      
      
       </portType> 
      
      
       <binding name='TestWsBinding' type='tns:TestWs'> 
      
      
        <soap:binding style='document' transport='http://schemas.xmlsoap.org/soap/http'/> 
      
      
        <operation name='greet'> 
      
      
         <soap:operation soapAction=' '/> 
      
      
         <input> 
      
      
          <soap:body use='literal'/> 
      
      
         </input> 
      
      
         <output> 
      
      
          <soap:body use='literal'/> 
      
      
         </output> 
      
      
        </operation> 
      
      
       </binding> 
      
      
       <service name='TestWsService'> 
      
      
        <port binding='tns:TestWsBinding' name='TestWsPort'> 
      
      
         <soap:address location='http://127.0.0.1:8080/Tws/TestWs'/> 
      
      
        </port> 
      
      
       </service> 
      
      
      </definitions>
      
      
      

       

      Has anyone experienced an issue like this before? and if so how did you resolve it?

       

      From my understanding, everything in my WSDL is fine, but for some reason, I cannot invoke it.

       

      Many thanks

       

      Mark