我正在学习Java的Web服务。我想知道以下 4 个类的用途,借助一个非常简单的用例 - WebServiceFeature、AddressingFeature、MTOMFeature、RespectBindingFeature。
假设,我正在发布一个 Web 服务,该服务将列出美国的所有州。我将如何使用这 4 个课程?
JavaAPI for XML-Based Web Services (JAX-WS) 2.1 版引入了功能的概念,作为以编程方式控制特定函数和行为的一种方式。
WebServiceFeature as per Java Doc
功能用于表示可以为 Web 服务启用或禁用的功能。
JAX-WS规范将定义一些标准功能部件,如有必要,JAX-WS 实现者可以自由定义其他特性。供应商特定的功能可能不便携,因此在使用它们时应谨慎使用。
寻址功能根据 Java 文档
AddressingFeature 表示将 WS-Addressing与 SOAP 1.1/HTTP 或 SOAP 1.2/HTTP 绑定一起使用。未定义将此功能与任何其他绑定一起使用。
此功能可以在创建 SEI 代理、客户端的调度实例和服务器端的端点实例期间使用。此功能不能用于在客户端创建服务实例。
MTOMFeature as per Java Doc
此功能表示将 MTOM 与 Web 服务配合使用。
也
JAX-WS 支持使用 SOAP 消息传输优化机制 (MTOM) 来发送二进制附件数据。通过启用 MTOM,您可以以最佳方式发送和接收二进制数据,而不会产生在 XML 文档中嵌入二进制数据所需的数据编码成本。
RespectBindingFeature as per Java Doc
此功能特性阐明了 wsdl:binding 在 JAX-WS 运行时中的使用。此功能可以在创建 SEI 代理、客户端的调度实例和服务器端的端点实例期间使用。此功能不能用于在客户端创建服务实例。
此功能仅对具有关联 WSDL 的 Web 服务有用。
用例 - 不幸的是,请参阅Java Docs - 我只是说不幸的是,因为我已经开发了几年的Web服务 - 我从不需要使用"WebServiceFeature,AddressingFeature,MTOMFeature,RespectBindingFeature" - 它们适用于我认为大多数开发人员不需要处理的利基用例。 我看到的最有益的是MTOMFeature,但如果你只是想要一个列出整个美国的Web服务 - 你不太可能需要任何详细说明的东西。
一些用例发现
MTOM:使用 JAX-WS,您可以发送二进制附件(如图像或文件)以及 Web 服务请求。 使用状态示例 - 您可以有一个 Web 服务,该服务请求设置/更新每个状态鸟的图片和状态歌曲的 base64 编码音频文件 - 图片和歌曲可以是 MTOM 附件。
寻址功能:这看起来只是在 Web 服务或 Web 服务客户端需要使用 WS-Addressing 时使用。 我想象尝试与需要使用WS-Addressing的第三方Web服务集成,在这种情况下,您编写的客户端需要指定其用途
RespectBindingFeature:可以使用 RespectBindingFeature 来控制是否需要 JAX-WS 实现来遵守与端点关联的 Web 服务描述语言 (WSDL) 绑定的内容。 通过实现 RespectBindingFeature 功能,您已经指定强制遵守与 JAX-WS 应用程序的端点关联的 WSDL 绑定的内容。 在 2.1 版之前的 JAX-WS 规范版本中,在运行时实际强制使用 WSDL 文档规范(如果提供了这些规范)。
WebServiceFeature:这是其他功能的父类。 我想用例只是子类从它继承的事实。