首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将为SOAP 1.1创建的WSDL文件转换为支持SOAP 1.2

如何将为SOAP 1.1创建的WSDL文件转换为支持SOAP 1.2
EN

Stack Overflow用户
提问于 2011-06-24 19:40:06
回答 1查看 14.5K关注 0票数 2

几年前,我基于我得到的WSDL构建了一个SOAP1.1服务。这是相当基础的:我执行了Axis的WSDL2Java并使用生成的类作为基础。

现在我被告知要迁移这个服务,这样人们就可以使用SOAP1.2访问它。

为了让新生成的服务(仍然使用Axis的WSDL2Java)支持SOAP1.2,我应该在WSDL文件中进行哪些更改?

重要的是要明白,我是服务提供商:我不想要只为客户工作的解决方案。

非常感谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-06-24 20:33:22

从结构上讲,您需要在WSDL文档中添加对SOAP1.2的支持。您的“抽象”WSDL部分定义了类型、消息和portTypes。(我在这里假设您想要更新您的WSDL1.1文档以添加对现有服务的SOAP1.2支持)

要支持SOAP1.2,您需要添加与SOAP1.2兼容的绑定和服务定义。举个例子,我们有这样的端口定义:

代码语言:javascript
复制
<wsdl:portType name="ServerSoap">
    <wsdl:operation name="SomeOperation"> ...

您将需要为您的操作添加SOAP1.2绑定节:

代码语言:javascript
复制
<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" /> ...

和一项服务:

代码语言:javascript
复制
<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提供了一种方法。

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6467234

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档