2011-12-23 73 views
0

我有一个让我发疯的问题。从java消费ws

我想使用Web服务,所以我创建使用Eclipse从WSDL客户端,但它不工作,但是当我使用其他工具,如XMLSpy的它的工作原理。

从我的Java代码(不工作)sended SOAP消息是:

<SOAP-ENV:Envelope 
    xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xmlns:xsd="http://www.w3.org/2001/XMLSchema"> 
    <SOAP-ENV:Body> 
     <JRPM056.Execute> 
      <Personas> 
        <ns1:pais xmlns:ns1="Personas">845</ns1:pais> 
        <ns2:tpdoc xmlns:ns2="Personas">1</ns2:tpdoc> 
        <ns3:ndoc xmlns:ns3="Personas">39858460</ns3:ndoc> 
        <ns4:apell1 xmlns:ns4="Personas">Recoba</ns4:apell1> 
        <ns5:apell2 xmlns:ns5="Personas">Viana</ns5:apell2> 
        <ns6:nombre1 xmlns:ns6="Personas">Rodrigo</ns6:nombre1> 
        <ns7:nombre2 xmlns:ns7="Personas">Romualdo</ns7:nombre2> 
        <ns8:fecnac xmlns:ns8="Personas">2011-12-01</ns8:fecnac> 
        <ns9:fecvto xmlns:ns9="Personas">2011-12-31</ns9:fecvto> 
        <ns10:sexo xmlns:ns10="Personas">M</ns10:sexo> 
        <ns11:estciv xmlns:ns11="Personas">2</ns11:estciv> 
        <ns12:domicilio xmlns:ns12="Personas"> 
         <ns13:domicilios.domiciliosItem xmlns:ns13="domicilios"> 
          <ns13:tdomi>4</ns13:tdomi> 
          <ns13:dpto>10</ns13:dpto> 
          <ns13:local>10</ns13:local> 
          <ns13:calle>Convenc</ns13:calle> 
          <ns13:puerta>1465</ns13:puerta> 
          <ns13:aparta>301</ns13:aparta> 
         </ns13:domicilios.domiciliosItem> 
         <ns14:domicilios.domiciliosItem xmlns:ns14="domicilios"> 
           <ns14:tdomi>3</ns14:tdomi> 
           <ns14:dpto>10</ns14:dpto> 
           <ns14:local>10</ns14:local> 
           <ns14:calle>Araucho</ns14:calle> 
           <ns14:puerta>1359</ns14:puerta> 
           <ns14:aparta>1</ns14:aparta> 
         </ns14:domicilios.domiciliosItem> 
        </ns12:domicilio> 
        <ns15:telefono xmlns:ns15="Personas"> 
          <ns16:Sdttelefonos.SdttelefonosItem xmlns:ns16="sdttelefonos"> 
           <ns16:tdomici>2</ns16:tdomici> 
           <ns16:telefono>27073963</ns16:telefono> 
           <ns16:sitdomi></ns16:sitdomi> 
          </ns16:Sdttelefonos.SdttelefonosItem> 
          <ns17:Sdttelefonos.SdttelefonosItem xmlns:ns17="sdttelefonos"> 
           <ns17:tdomici>1</ns17:tdomici> 
           <ns17:telefono>099514254</ns17:telefono> 
           <ns17:sitdomi></ns17:sitdomi> 
          </ns17:Sdttelefonos.SdttelefonosItem> 
          <ns18:Sdttelefonos.SdttelefonosItem xmlns:ns18="sdttelefonos"> 
           <ns18:tdomici>0</ns18:tdomici> 
           <ns18:telefono>099514254</ns18:telefono> 
           <ns18:sitdomi></ns18:sitdomi> 
          </ns18:Sdttelefonos.SdttelefonosItem> 
         </ns15:telefono> 
       <ns19:Ocucod xmlns:ns19="Personas">1</ns19:Ocucod> 
       <ns20:Actcod xmlns:ns20="Personas">1</ns20:Actcod> 
       <ns21:empresa xmlns:ns21="Personas">MI</ns21:empresa> 
       <ns22:fecing xmlns:ns22="Personas">2011-12-01</ns22:fecing> 
      </Personas> 
      </JRPM056.Execute> 
     </SOAP-ENV:Body> 
</SOAP-ENV:Envelope> 

错误消息:

<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> 
<SOAP-ENV:Body> 
<WS.ExecuteResponse xmlns="http://tempuri.org/action/"> 
    <SOAP-ENV:Fault> 
     <faultcode>SOAP-ENV:Client</faultcode> 
     <faultstring>Name of parameter 2 different than expected.</faultstring> 
     <detail>2</detail> 
    </SOAP-ENV:Fault> 
</WS.ExecuteResponse> 
</SOAP-ENV:Body> 
</SOAP-ENV:Envelope> 

从XML间谍sended SOAP消息(工作)是:

<SOAP-ENV:Envelope 
    xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" 
    xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xmlns:xsd="http://www.w3.org/2001/XMLSchema"> 
    <SOAP-ENV:Body> 
     <JRPM056.Execute> 
      <Personas> 
        <ns1:pais xmlns:ns1="Personas">845</ns1:pais> 
        <ns2:tpdoc xmlns:ns2="Personas">1</ns2:tpdoc> 
        <ns3:ndoc xmlns:ns3="Personas">39858460</ns3:ndoc> 
        <ns4:apell1 xmlns:ns4="Personas">Recoba</ns4:apell1> 
        <ns5:apell2 xmlns:ns5="Personas">Viana</ns5:apell2> 
        <ns6:nombre1 xmlns:ns6="Personas">Rodrigo</ns6:nombre1> 
        <ns7:nombre2 xmlns:ns7="Personas">Romualdo</ns7:nombre2> 
        <ns8:fecnac xmlns:ns8="Personas">2011-12-01</ns8:fecnac> 
        <ns9:fecvto xmlns:ns9="Personas">2011-12-31</ns9:fecvto> 
        <ns10:sexo xmlns:ns10="Personas">M</ns10:sexo> 
        <ns11:estciv xmlns:ns11="Personas">2</ns11:estciv> 
        <ns12:domicilio xmlns:ns12="Personas"> 
         <ns13:domicilios.domiciliosItem xmlns:ns13="domicilios"> 
          <ns13:tdomi>4</ns13:tdomi> 
          <ns13:dpto>10</ns13:dpto> 
          <ns13:local>10</ns13:local> 
          <ns13:calle>Convenc</ns13:calle> 
          <ns13:puerta>1465</ns13:puerta> 
          <ns13:aparta>301</ns13:aparta> 
         </ns13:domicilios.domiciliosItem> 
         <ns14:domicilios.domiciliosItem xmlns:ns14="domicilios"> 
           <ns14:tdomi>3</ns14:tdomi> 
           <ns14:dpto>10</ns14:dpto> 
           <ns14:local>10</ns14:local> 
           <ns14:calle>Araucho</ns14:calle> 
           <ns14:puerta>1359</ns14:puerta> 
           <ns14:aparta>1</ns14:aparta> 
         </ns14:domicilios.domiciliosItem> 
        </ns12:domicilio> 
        <ns15:telefono xmlns:ns15="Personas"> 
          <ns16:Sdttelefonos.SdttelefonosItem xmlns:ns16="sdttelefonos"> 
           <ns16:tdomici>2</ns16:tdomici> 
           <ns16:telefono>27073963</ns16:telefono> 
           <ns16:sitdomi></ns16:sitdomi> 
          </ns16:Sdttelefonos.SdttelefonosItem> 
          <ns17:Sdttelefonos.SdttelefonosItem xmlns:ns17="sdttelefonos"> 
           <ns17:tdomici>1</ns17:tdomici> 
           <ns17:telefono>099514254</ns17:telefono> 
           <ns17:sitdomi></ns17:sitdomi> 
          </ns17:Sdttelefonos.SdttelefonosItem> 
          <ns18:Sdttelefonos.SdttelefonosItem xmlns:ns18="sdttelefonos"> 
           <ns18:tdomici>0</ns18:tdomici> 
           <ns18:telefono>099514254</ns18:telefono> 
           <ns18:sitdomi></ns18:sitdomi> 
          </ns18:Sdttelefonos.SdttelefonosItem> 
         </ns15:telefono> 
       <ns19:Ocucod xmlns:ns19="Personas">1</ns19:Ocucod> 
       <ns20:Actcod xmlns:ns20="Personas">1</ns20:Actcod> 
       <ns21:empresa xmlns:ns21="Personas">MI</ns21:empresa> 
       <ns22:fecing xmlns:ns22="Personas">2011-12-01</ns22:fecing> 
      </Personas> 
      </JRPM056.Execute> 
     </SOAP-ENV:Body> 
</SOAP-ENV:Envelope> 

我正尝试找出性差异,以获取有关为什么不从我的工作由日食CLIEN产生的任何线索吨。 谢谢!

+0

包括您实际消耗的WS代码。 – Alfabravo 2011-12-23 20:59:16

+0

@Alfabravo代码已添加。 – Keetah 2011-12-23 21:18:51

回答

0

你的架构没有任何意义。命名空间“tns3”没有在任何地方定义,而且你的各种类型名称根本不匹配。这是真正的模式吗?如果是这样,我会尝试先把它改正。

+0

从来就加入两个SOAP消息,所述一个sended轮空XMLSPY,即运行完美,并且从我的Java代码生成的一个(正与蚀产生的客户端)。谢谢。 – Keetah 2011-12-23 21:58:17

+0

是的,命名空间应该明智地使用。但在这些可怕的时代,一些邪恶的软件允许这样的疯狂hehehe。无论如何,如果WS允许第二个消息... – Alfabravo 2011-12-23 22:13:08

+0

@Alfabravo - 我实际上评论包含在问题的原始版本中的模式,这很可能是无效的。 – jtahlborn 2011-12-24 01:25:40