Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java EE (J2EE) и Spring > MS Soap toolkit и JBossWS 1.2.1


Автор: sandello 20.6.2007, 06:34
Столкнулся тут с проблемой: не может скрипт, использующий MS Soap toolkit зацепиться к моему ws (запущен на JBossWs 1.2.1GA)

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>


MS Soap toolkit создает сообщение
Код

<?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.telecom_m.com/">
   <SOAPSDK4:connID>123456789</SOAPSDK4:connID>
   <SOAPSDK4:service>128</SOAPSDK4:service>
  </SOAPSDK4:setService>
 </SOAP-ENV:Body>
</SOAP-ENV:Envelope>


JbossWS в ответ на сообщение говорит
Код
Cannot find child element: connID


Товарищи в JBoss'е сказали, что это сообщение не соответствует wsdl, неправильно указан namespace (дословно "According to the wsdl the first message is invalid because it incorectly namespace qualifies the rpc parameters.")
Я, если честно, не могу понять, почему. Для всего элемента "definition" указан targetNamespace. Если я правильно понимаю, все элементы, определенные внутри и не имеющие ns-префикса, имеют заданный Namespace. Тогда почему я не могу указать его (в виде префикса) в элементах "connID","service"???

Но это все лирика. Нужны способы заставить работать MS Soap toolkit 3.0 c моим ws.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)