0 Replies Latest reply on Nov 18, 2008 5:12 AM by Vikas Gupta

    Problem in interpreting SOAP message on JBoss EAP 4.3.0

    Vikas Gupta Newbie

      Hi All,

      We are using XFire to invoke webservices. We were using Jboss AS 4.0.5 earlier to deploy our webservices. This combination was working fine.
      Now we have upgraded to JBossEAP 4.3.0. When we generate webservice clients via XFire to test webservices deployed on EAP, the parameters passed are null.
      If we generate clients from wsconsume (Jboss utility), it works fine. It works well with .NET clients as well.
      I am wondering what has changed in EAP which is not interpreting XFire request correctly.

      Following are the SOAP messages from various clients, all work well in JBoss AS 4.0.4 but on EAP with XFire, parameters become null.

      <=====================Jboss Client====================>

      
      <env:Envelope xmlns:env='http://schemas.xmlsoap.org/soap/envelope/'>
       <env:Header/>
       <env:Body>
       <ns1:callwebsvcService xmlns:ns1='http://ws.websvc.services.abhishek.com/standard/head/websvctest'>
       <token>myvalue</token>
       <holdingId>101</holdingId>
       </ns1:callwebsvcService>
       </env:Body>
      </env:Envelope>
      


      <=====================.NET Client====================>
      
      <soap:Envelope xmlns:soap='http://schemas.xmlsoap.org/soap/envelope/' xmlns:xsd='http://www.w3.org/2001/XMLSchema' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance'>
       <soap:Body>
       <callwebsvcService xmlns='http://ws.websvc.services.abhishek.com/standard/head/websvctest'>
       <token xmlns=''>test</token>
       <holdingId xmlns=''>1</holdingId>
       </callwebsvcService>
       </soap:Body>
      </soap:Envelope>
      


      <=====================XFIRE Client===================>
      
      <soap:Envelope xmlns:soap='http://schemas.xmlsoap.org/soap/envelope/' xmlns:xsd='http://www.w3.org/2001/XMLSchema' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance'>
       <soap:Body>
       <ns1:callwebsvcService xmlns:ns1='http://ws.websvc.services.abhishek.com/standard/head/websvctest'>
       <ns1:token>XFire</ns1:token>
       <ns1:holdingId>123</ns1:holdingId>
       </ns1:callwebsvcService>
       </soap:Body>
      </soap:Envelope>
      


      <====================================================>

      Following is the wsdl contents

      <?xml version="1.0" encoding="UTF-8"?>
      <definitions name="websvcCallService" targetNamespace="http://ws.websvc.services.abhishek.com/standard/head/websvctest"
      xmlns:tns="http://ws.websvc.services.abhishek.com/standard/head/websvctest" xmlns:xsd="http://www.w3.org/2001/XMLSchema"
      xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns="http://schemas.xmlsoap.org/wsdl/">
       <types>
       <xs:schema targetNamespace="http://ws.websvc.services.abhishek.com/standard/head/websvctest" version="1.0"
       xmlns:tns="http://ws.websvc.services.abhishek.com/standard/head/websvctest" xmlns:xs="http://www.w3.org/2001/XMLSchema">
       <xs:element name="callwebsvcService" type="tns:callwebsvcService"/>
       <xs:element name="callwebsvcServiceResponse" type="tns:callwebsvcServiceResponse"/>
       <xs:complexType name="callwebsvcService">
       <xs:sequence>
       <xs:element minOccurs="0" name="token" type="xs:string"/>
       <xs:element name="holdingId" type="xs:int"/>
       </xs:sequence>
       </xs:complexType>
       <xs:complexType name="callwebsvcServiceResponse">
       <xs:sequence>
       <xs:element minOccurs="0" name="callwebsvcServiceResponse" type="xs:string"/>
       </xs:sequence>
       </xs:complexType>
       </xs:schema>
       </types>
       <message name="websvcCallService_callwebsvcService">
       <part name="callwebsvcService" element="tns:callwebsvcService">
       </part>
       </message>
       <message name="websvcCallService_callwebsvcServiceResponse">
       <part name="callwebsvcServiceResponse" element="tns:callwebsvcServiceResponse">
       </part>
       </message>
       <portType name="websvcCallService">
       <operation name="callwebsvcService" parameterOrder="callwebsvcService">
       <input message="tns:websvcCallService_callwebsvcService">
       </input>
       <output message="tns:websvcCallService_callwebsvcServiceResponse">
       </output>
       </operation>
       </portType>
       <binding name="websvcCallServiceBinding" type="tns:websvcCallService">
       <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
       <operation name="callwebsvcService">
       <soap:operation soapAction=""/>
       <input>
       <soap:body use="literal"/>
       </input>
       <output>
       <soap:body use="literal"/>
       </output>
       </operation>
       </binding>
       <service name="websvcCallService">
       <port name="websvcCallServicePort" binding="tns:websvcCallServiceBinding">
       <soap:address location="http://127.0.0.1:8080/ws/websvcCallService"/>
       </port>
       </service>
      </definitions>
      

      <====================================================>

      XFire uses namespace with the attribute which is correct, why does EAP fails to parse these values.

      Any Help on this matter is highly appreciated.

      Regards,
      Abhishek