多年前,我基於給出的WSDL構建了SOAP 1.1服務。這很基本:我執行了Axis的WSDL2Java並使用生成的類作爲基礎。如何將用於SOAP 1.1的WSDL文件轉換爲支持SOAP 1.2
現在我被告知要遷移此服務,以便人們可以使用SOAP 1.2訪問它。
我應該在我的WSDL文件中更改什麼,以便我的新生成的服務(仍然使用Axis的WSDL2Java)支持SOAP 1.2?
重要的是要明白我是服務提供商:我不希望僅適用於客戶的解決方案。
非常感謝!
多年前,我基於給出的WSDL構建了SOAP 1.1服務。這很基本:我執行了Axis的WSDL2Java並使用生成的類作爲基礎。如何將用於SOAP 1.1的WSDL文件轉換爲支持SOAP 1.2
現在我被告知要遷移此服務,以便人們可以使用SOAP 1.2訪問它。
我應該在我的WSDL文件中更改什麼,以便我的新生成的服務(仍然使用Axis的WSDL2Java)支持SOAP 1.2?
重要的是要明白我是服務提供商:我不希望僅適用於客戶的解決方案。
非常感謝!
從結構上講,您需要在WSDL文檔中添加對SOAP 1.2的支持。 您的'抽象'WSDL部分定義了類型,消息和portTypes。 (我在這裏假設你想更新你的WSDL1.1文檔,爲你現有的服務添加SOAP1.2支持)
爲了支持SOAP1.2,你需要添加SOAP1.2兼容的綁定和服務定義。 作爲一個例子,我們有這個端口定義:
<wsdl:portType name="ServerSoap">
<wsdl:operation name="SomeOperation"> ...
您將需要添加一個SOAP1.2結合部爲您的操作:
<wsdl:binding name="ServerSoap12" type="tns:ServerSoap">
<soap12:binding transport="http://schemas.xmlsoap.org/soap/http" />
<wsdl:operation name="SomeOperation">
<soap12:operation soapAction="..." style="document" /> ...
與服務:
<wsdl:service name="Server">
<!-- SOAP1.1 Service -->
<wsdl:port name="ServerSoap" binding="tns:ServerSoap">
<soap:address location="http://localhost:8080/Server" />
</wsdl:port>
<!-- SOAP1.2 Service -->
<wsdl:port name="ServerSoap12" binding="tns:ServerSoap12">
<soap12:address location="http://localhost:8080/Server" />
</wsdl:port>
</wsdl:service>
請注意,這兩個定義可以共存,並且您的服務可以向後兼容SOAP1.1。客戶必須選擇使用SOAP1.1或SOAP1.2。
實際上,您可以嘗試從您擁有的代碼生成WSDL,指示Axis爲SOAP1.2生成綁定。我不是AXIS用戶,所以RTM java2wsdl提供了一種解決方法。
非常感謝!今天我沒有太多的時間來測試它,所以我會在星期一嘗試。 –
恩,那就行!謝謝! –
什麼是'soap12'?它在哪裏描述?我有'xmlns:soap =「http://schemas.xmlsoap.org/wsdl/soap12/」'但生成的web服務僅支持soap 1.1出於某種原因 – 4ntoine