41.2. 在服务提供商中使用 XML


摘要

Provider 接口是一个低级 JAX-WS API,它允许您实施一个服务供应商,作为原始 XML 直接处理消息。消息不会打包成 JAXB 对象,然后传递到实现 Provider 接口的对象。

41.2.1. 消息传递模式

概述

实施 Provider 接口的对象有两种 消息传递模式

您指定的消息传递模式决定了传递到您的实施的消息传递详情级别。

消息模式

在使用 消息模式 时,提供程序实施可用于完成消息。完整消息中包含任何绑定特定标头和打包程序。例如,使用 SOAP 绑定的供应商实现会接收请求作为完全指定的 SOAP 消息。所有从实施返回的响应都必须是完全指定的 SOAP 消息。

要指定 Provider 实现使用消息模式,方法是提供值 java.xml.ws.Service.Mode.MESSAGE 作为 javax.xml.ws.ServiceMode 注解的值,如 例 41.9 “指定供应商实施使用消息模式” 所示。

例 41.9. 指定供应商实施使用消息模式

@WebServiceProvider
@ServiceMode(value=Service.Mode.MESSAGE)
public class stockQuoteProvider implements Provider<SOAPMessage>
{
  ...
}

有效负载模式

有效负载模式中,提供程序实施仅用于消息有效负载。例如,在有效负载模式下工作的供应商实施只适用于 SOAP 消息的正文。绑定层处理任何绑定级别的打包程序和标头。

在使用不使用特殊打包程序的绑定时,如 Apache CXF XML 绑定、有效负载模式和消息模式提供相同的结果。

要指定 Provider 实现使用有效负载模式,方法是提供值 java.xml.ws.Service.Mode.PAYLOAD 作为 javax.xml.ws.ServiceMode 注解的值,如 例 41.10 “指定 Provider Implementation Uses Payload Mode” 所示。

例 41.10. 指定 Provider Implementation Uses Payload Mode

@WebServiceProvider
@ServiceMode(value=Service.Mode.PAYLOAD)
public class stockQuoteProvider implements Provider<DOMSource>
{
  ...
}

如果没有为 @ServiceMode 注释提供值,则 Provider 实现使用 payload 模式。

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.