gpt4 book ai didi

java - 如何转换为 SOAP 1.1 制作的 WSDL 文件以支持 SOAP 1.2

转载 作者:行者123 更新时间:2023-11-30 06:35:03 24 4
gpt4 key购买 nike

多年前,我根据获得的 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 的绑定(bind)和服务定义。例如,我们有这个端口定义:

<wsdl:portType name="ServerSoap">
<wsdl:operation name="SomeOperation"> ...

您需要为操作添加 SOAP1.2 绑定(bind)部分:

<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 生成绑定(bind)。我不是 AXIS 用户,所以 RTM java2wsdl 提供了一种方法。

关于java - 如何转换为 SOAP 1.1 制作的 WSDL 文件以支持 SOAP 1.2,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6467234/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com