MS Soap toolkit and Jboss are understanding wsdl differently
sandello Jun 20, 2007 7:08 AMMS 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?