2010-06-24 38 views
3

我從不同的Magento安裝得到兩個不同的響應。他們認爲是相同的,都應該工作,但第二個響應不能被我的Axis Java客戶端應用程序解析。而且我不知道某些更新版本的Axis是否可以解析這兩個版本。不同格式的Axis SOAP響應是一樣的嗎?

現在的問題是:從SOAP格式的視圖應該這些兩個響應很好地解析到相同的結果?

響應1:

 <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="urn:Magento" 
         xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" 
         xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> 
     <SOAP-ENV:Body> 
      <ns1:salesOrderListResponse> 
       <result SOAP-ENC:arrayType="ns1:salesOrderEntity[24]" xsi:type="ns1:salesOrderEntityArray"> 
        <item xsi:type="ns1:salesOrderEntity"> 
         <increment_id xsi:type="xsd:string">100000056-1</increment_id> 
         <parent_id xsi:type="xsd:string">0</parent_id> 
... 

響應2:

<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="urn:Magento" 
        xmlns:ns2="http://xml.apache.org/xml-soap" 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> 
     <ns1:salesOrderListResponse> 
      <result SOAP-ENC:arrayType="ns2:Map[30]" xsi:type="ns1:salesOrderEntityArray"> 
       <item xsi:type="ns2:Map"> 
        <item> 
         <key xsi:type="xsd:string">increment_id</key> 
         <value xsi:type="xsd:string">200000281</value> 
        </item> 
        <item> 
         <key xsi:type="xsd:string">parent_id</key> 
         <value xsi:type="xsd:string">0</value> 
        </item> 
... 

更新: 兩個安裝使用相同的Magento版本1.3.2.4。第二次安裝運行PHP 5.2.13。它可能與PHP版本或安裝的PHP soap框架有關嗎?

回答

3

當然,這是因爲您的安裝中使用的Soap框架。 請參閱Webserver requirements

順便說一句,這是知道軸1.4有問題:

<value xsi:type="xsd:string">200000281</value> 

要在軸工作,它應該是:

<value xsi:type="soapenc:string">200000281</value> 

更多信息看here,看起來是你面對的同樣的問題。

Here是一個線程,也許可以幫助你。