3 Replies Latest reply on Jul 11, 2007 11:28 AM by lacp46

    Endpoint does not contain operation meta data for: getAccoun

    maffewl

      I want to try and test the backwards compatibility of a webservice I upgraded from Axis to JBossWS.

      Up to this point I have consumed the old wsdl w/ wsconsume and have the service deployed in Jboss 4.2.0.GA. I sent in the old xml and it hits the endpoint but i get the following message:

      [org.jboss.ws.core.jaxws.SOAPFaultHelperJAXWS] SOAP request exception
      javax.xml.rpc.soap.SOAPFaultException: Endpoint {http://xxxxx/account}accountServicePort does not contain operation meta data for: getAccount

      here is the request I am sending that works in our old environment (axis/jboss.net) but fails in the new environment:

      <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:m0="http://xxxxx/account">
       <SOAP-ENV:Body>
       <getAccount>
       ...
       </getAccount>
       </SOAP-ENV:Body>
      </SOAP-ENV:Envelope>


      just for kicks I changed the getAccount tags to :
      <m0:getAccount> ... </m0:getAccount>

      as defined in the envelope, and i got a different error

      [org.jboss.ws.core.jaxws.SOAPFaultHelperJAXWS] SOAP request exception
      org.jboss.ws.WSException: Cannot find child element: {http://xxxxx/type}getAccount

      which seems to me that it it does find the 'getAccount'.

      but the reality is, i cant really change the request. I have to try and upgrade transparently.

      heres a portion of the deployed wsdl on the service if it helps

      <definitions name='AccountService' targetNamespace='http://xxxxx/account' xmlns='http://schemas.xmlsoap.org/wsdl/' xmlns:ns1='http://xxx/type' xmlns:soap='http://schemas.xmlsoap.org/wsdl/soap/' xmlns:tns='http://xxxxx/account' xmlns:xsd='http://www.w3.org/2001/XMLSchema'>
       <types>
       <xs:schema elementFormDefault='qualified' targetNamespace='http://xxxxx/type' version='1.0' xmlns:tns='http://xxxxx/type' xmlns:xs='http://www.w3.org/2001/XMLSchema'>
      
       ...
      
       <xs:element name='getAccount'>
       <xs:complexType>
       <xs:sequence>
      
       ...
      
       </xs:sequence>
       </xs:complexType>
       </xs:element>
       </xs:schema>
       </types>
      
       ...
      
       <message name='accountService_getAccount'>
       <part element='ns1:getAccount' name='getAccount'></part>
       </message>
      
       ...
      
       <portType name='accountService'>
      
       ...
      
       <operation name='getAccount' parameterOrder='getAccount'>
       <input message='tns:accountService_getAccount'></input>
       <output message='tns:accountService_getAccountResponse'></output>
       </operation>
      
       ...
      
       </portType>
      
       <binding name='accountServiceBinding' type='tns:accountService'>
       <soap:binding style='document' transport='http://schemas.xmlsoap.org/soap/http'/>
      
       ...
      
       <operation name='getAccount'>
       <soap:operation soapAction='urn:#GetAccount'/>
       <input>
       <soap:body use='literal'/>
       </input>
       <output>
       <soap:body use='literal'/>
       </output>
       </operation>
      
       ...
      
       </binding>
       <service name='accountService'>
       <port binding='tns:accountServiceBinding' name='accountServicePort'>
       <soap:address location='http://xxxxxxxx:8080/accountService'/>
       </port>
       </service>
      </definitions>
      

      thanks

      matt