2011-12-23 32 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