下面的请求xml可以由服务客户端存根代码形成,它在开发框中工作正常。应用程序服务器是websphere-8.5.5。
<?xml version="1.0" encoding="UTF-8"?><soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"><soapenv:Body><getPlanLookUpBySSN xmlns="http://example.com"><argLookupBySSNInput xmlns=""><applicationId>IVR</applicationId><client>PC</client><ivrInd>Y</ivrInd><scrollIndicator></scrollIndicator><scrollKey></scrollKey><ssn>12345</ssn><type>Dental</type><userId>IVR</userId><asOfDate></asOfDate></argLookupBySSNInput></getPlanLookUpBySSN></soapenv:Body></soapenv:Envelope>
将在UAT中部署相同的客户端存根代码。服务器(WebSphere)和服务URL与dev中的相同。但是元素位置在UAT框中按字母顺序排序。因此,Web服务不会接受请求xml,而是抛出错误。
<?xml version="1.0" encoding="UTF-8"?><soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"><soapenv:Body><getPlanLookUpBySSN xmlns="http://example.com"><argLookupBySSNInput xmlns=""><applicationId>IVR</applicationId><asOfDate></asOfDate><client>PC</client><ivrInd>Y</ivrInd><scrollIndicator></scrollIndicator><scrollKey></scrollKey><ssn>12345</ssn><type>Dental</type><userId>IVR</userId></argLookupBySSNInput></getPlanLookUpBySSN></soapenv:Body></soapenv:Envelope>
在上面的xml <asOfDate>
元素位置已更改。请帮助我们解决此问题。
答案 0 :(得分:0)
您可能需要修改WSDL并将模式 getPlanLookUpBySSN 元素设置为固定序列,如下所示,并重新生成客户端。像下面的东西。 tag使标签序列严格。
<xs:element name="getPlanLookUpBySSN">
<xs:complexType>
<xs:sequence>
<xs:element name="argLookupBySSNInput">
<xs:complexType>
<xs:sequence>
<xs:element name="applicationId" type="xs:string"></xs:element>
<xs:element name="asOfDate"></xs:element>
<xs:element name="client" type="xs:string"></xs:element>
<xs:element name="ivrInd" type="xs:string"></xs:element>
<xs:element name="scrollIndicator"></xs:element>
<xs:element name="scrollKey"></xs:element>
<xs:element name="ssn" type="xs:int"></xs:element>
<xs:element name="type" type="xs:string"></xs:element>
<xs:element name="userId" type="xs:string"></xs:element>
</xs:sequence>
<xs:attribute name="xmlns" type="xs:string"></xs:attribute>
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:attribute name="xmlns" type="xs:string"></xs:attribute>
</xs:complexType>
</xs:element>