0 Replies Latest reply on Jun 20, 2007 7:08 AM by sandello

    MS Soap toolkit and Jboss are understanding wsdl differently

    sandello

      MS Soap client sends a message to JBossWS Server looks like

      <?xml version="1.0" encoding="UTF-8" standalone="no"?>
      <SOAP-ENV:Envelope
       xmlns:SOAPSDK1="http://www.w3.org/2001/XMLSchema"
       xmlns:SOAPSDK2="http://www.w3.org/2001/XMLSchema-instance"
      xmlns:SOAPSDK3="http://schemas.xmlsoap.org/soap/encoding/"
      xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
       <SOAP-ENV:Body>
       <SOAPSDK4:setService xmlns:SOAPSDK4="http://bean.brasws.company.com/">
       <SOAPSDK4:connID>123456789</SOAPSDK4:connID>
       <SOAPSDK4:service>128</SOAPSDK4:service>
       </SOAPSDK4:setService>
       </SOAP-ENV:Body>
      </SOAP-ENV:Envelope>
      


      JBossWS can't find element "connID"
      If axis client sends message
      <?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>
       <setIP xmlns="http://bean.brasws.company.com/">
       <connID xmlns="">a</connID>
       <ip xmlns="">b</ip>
       </setIP>
       </soapenv:Body>
      </soapenv:Envelope>
      

      JBoss successfully find the element.

      wsdl
      <definitions name='BrasUserManagerBeanService' targetNamespace='http://bean.brasws.telecom_m.com/' xmlns='http://schemas.xmlsoap.org/wsdl/'
       xmlns:soap='http://schemas.xmlsoap.org/wsdl/soap/' xmlns:tns='http://bean.brasws.telecom_m.com/'
       xmlns:xsd='http://www.w3.org/2001/XMLSchema'>
       <types></types>
       <message name='IBrasUserManager_setIP'>
       <part name='connID' type='xsd:string'></part>
       <part name='ip' type='xsd:string'></part>
       </message>
       <message name='IBrasUserManager_setServiceResponse'>
       <part name='return' type='xsd:boolean'></part>
       </message>
       <message name='IBrasUserManager_setIPResponse'>
       <part name='return' type='xsd:boolean'></part>
       </message>
       <message name='IBrasUserManager_setService'>
       <part name='connID' type='xsd:string'></part>
       <part name='service' type='xsd:string'></part>
       </message>
       <portType name='IBrasUserManager'>
       <operation name='setIP' parameterOrder='connID ip'>
       <input message='tns:IBrasUserManager_setIP'></input>
       <output message='tns:IBrasUserManager_setIPResponse'></output>
       </operation>
       <operation name='setService' parameterOrder='connID service'>
       <input message='tns:IBrasUserManager_setService'></input>
       <output message='tns:IBrasUserManager_setServiceResponse'></output>
       </operation>
       </portType>
       <binding name='IBrasUserManagerBinding' type='tns:IBrasUserManager'>
       <soap:binding style='rpc' transport='http://schemas.xmlsoap.org/soap/http'/>
       <operation name='setIP'>
       <soap:operation soapAction=''/>
       <input>
       <soap:body namespace='http://bean.brasws.telecom_m.com/' use='literal'/>
       </input>
       <output>
       <soap:body namespace='http://bean.brasws.telecom_m.com/' use='literal'/>
       </output>
       </operation>
       <operation name='setService'>
       <soap:operation soapAction=''/>
       <input>
       <soap:body namespace='http://bean.brasws.telecom_m.com/' use='literal'/>
       </input>
       <output>
       <soap:body namespace='http://bean.brasws.telecom_m.com/' use='literal'/>
       </output>
       </operation>
       </binding>
       <service name='BrasUserManagerBeanService'>
       <port binding='tns:IBrasUserManagerBinding' name='BrasUserManagerBeanPort'>
       <soap:address location='http://s-makarov.telecom-m.com:8080/BrasUserManagerBeanService/BrasUserManagerBean'/>
       </port>
       </service>
      </definitions>
      


      I think that the "targetNamespace" attribute define namespace for all declared parts: service, messages, etc.
      Am I right?