簡體   English   中英

如何轉換為SOAP 1.1創建的WSDL文件以支持SOAP 1.2

[英]How to convert a WSDL file made for SOAP 1.1 to support SOAP 1.2

多年前,我根據給出的WSDL構建了SOAP 1.1服務。 這是相當基本的:我執行了Axis的WSDL2Java,並使用生成的類作為基礎。

現在,我被告知要遷移此服務,以便人們可以使用SOAP 1.2來訪問它。

我應該在WSDL文件中進行哪些更改,以便新生成的服務(仍使用Axis的WSDL2Java)支持SOAP 1.2?

重要的是要了解我是服務提供商:我不想要僅適用於客戶的解決方案。

非常感謝!

從結構上講,您將需要在WSDL文檔中添加對SOAP 1.2的支持。 您的“抽象” WSDL部分定義了類型,消息和端口類型。 (我在這里假設您要更新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來實現。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM