我正在学习Java中的Web服务。我想借助一个非常简单的用例--WebServiceFeature,AddressingFeature,MTOMFeature,RespectBindingFeature来了解以下4个类的用法。
假设,我正在发布一个将列出美国所有国家的网络服务。我如何利用这4个班级?
答案 0 :(得分:1)
基于XML的Web服务的Java API(JAX-WS)2.1版引入了功能概念,作为以编程方式控制特定功能和行为的方法。
根据{{3}}的WebServiceFeature
WebServiceFeature用于表示可以为Web服务启用或禁用的功能。
JAX-WS规范将定义一些标准功能,如果需要,JAX-WS实现者可以自由定义其他功能。供应商特定功能可能无法移植,因此在使用时应谨慎使用。
根据Java Doc发送地址功能
AddressingFeature表示使用SOAP 1.1 / HTTP或SOAP 1.2 / HTTP绑定的WS-Addressing。将此功能与任何其他绑定一起使用是未定义的。
可以在创建SEI代理期间使用此功能,在客户端创建Dispatch实例,在服务器端创建Endpoint实例。此功能不能用于在客户端创建服务实例。
根据Java Doc
的MTOM功能此功能表示将MTOM用于Web服务。
另外
JAX-WS支持使用SOAP消息传输优化机制(MTOM)来发送二进制附件数据。通过启用MTOM,您可以最佳地发送和接收二进制数据,而不会产生将二进制数据嵌入XML文档所需的数据编码成本。
根据Java Doc
的RespectBindingFeature此功能阐明了在JAX-WS运行时中使用wsdl:binding。可以在创建SEI代理期间使用此功能,也可以在客户端端的Dispatch实例和服务器端的Endpoint实例上使用此功能。此功能不能用于在客户端创建服务实例。
此功能仅适用于具有关联WSDL的Web服务。
使用案例 - 遗憾的是,请参阅Java文档 - 我不幸地说,与我一起开发Web服务已有好几年了 - 我从未需要使用" WebServiceFeature, AddressingFeature,MTOMFeature,RespectBindingFeature" - 他们认为大多数开发人员需要处理的小众用例。我看到的最有益的是MTOMFeature,但如果您只想要一个列出所有美国的网络服务 - 您可能不需要任何精心设计的内容。
部分用例结果
MTOM:使用JAX-WS,您可以发送二进制附件(如图像或文件)以及Web服务请求。使用您的状态示例 - 您可以拥有一个Web服务请求设置/更新状态状态鸟的图片和状态歌曲的base64编码音频文件 - 图片和歌曲可以是MTOM附件。
AddressingFeature:看起来它只是在Web服务或Web服务客户端需要使用WS-Addressing时才使用。我想象一下尝试与需要使用WS-Addressing的第三方Web服务集成,在这种情况下,您编写的客户需要指定它的使用
RespectBindingFeature:您可以使用RespectBindingFeature来控制是否需要JAX-WS实现来遵守与端点关联的Web服务描述语言(WSDL)绑定的内容。通过实现RespectBindingFeature功能,您已指定强制遵守与JAX-WS应用程序的端点关联的WSDL绑定的内容。在运行时提供的WSDL文档规范的实际使用在版本2.1之前的JAX-WS规范版本中尚未明确定义。
WebServiceFeature:这是其他功能的父类。我想象的用例只是子类继承的事实。