4
- 客戶是使用SOAP::Lite Perl腳本。
- 服務器是使用Spring和CXF的基於Java的應用程序。
我的客戶是基於WSDL產生以下SOAP請求:
<?xml version="1.0" encoding="UTF-8"?>
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" soap:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
<createFolder xmlns="http://xyz.com/">
<parentId xsi:type="xsd:string">1</parentId>
<folderName xsi:type="xsd:string">Test</folderName>
</createFolder>
</soap:Body>
</soap:Envelope>
這個請求將無法針對CXF。幾次調查後,我發現了以下手動生產要求將工作:
<?xml version="1.0" encoding="UTF-8"?>
<soap:Envelope xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xyz="http://xyz.com/">
<soap:Body>
<xyz:createFolder>
<parentId xsi:type="xsd:string">1</parentId>
<folderName xsi:type="xsd:string">Test</folderName>
</xyz:createFolder>
</soap:Body>
</soap:Envelope>
的區別是元素createFolder
命名空間的定義。
我的問題是:如何配置SOAPLite來創建工作的SOAP請求?
反之亦然:如何將CXF配置爲接受SOAP :: Lite請求樣式?
它也可能是CXF的配置問題。 – Philipp 2012-04-11 13:24:28