编程语言
首页 > 编程语言> > java-不同格式的Axis SOAP响应是否相同?

java-不同格式的Axis SOAP响应是否相同?

作者:互联网

我从不同的Magento安装中得到了两种不同的响应.它们被认为是相同的,并且两者都可以工作,但是我的Axis Java客户端应用无法解析第二个响应.而且我不知道某些更新版本的Axis是否可以同时解析这两者.

问题是:从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框架有关吗?

解决方法:

当然,这是由于安装中使用了Soap框架而发生的.
在这里看到Webserver requirements.

顺便说一下,众所周知Axis 1.4存在以下问题:

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

要在Axis中工作,应为:

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

有关更多信息,请参见here,这似乎与您面临的问题相同.

Here是一个线程,可能也可以为您提供帮助.

标签:magento,axis,java,php
来源: https://codeday.me/bug/20191210/2098193.html