问. 什么是 Java API for XML Messaging(JAXM)?
答. Java API for XML Messaging(JAXM)是专门用于 Internet 上交换 XML 商业文档的 API 。常用于交换的 XML 文档的例子有订单、订购确认和发票。您可以在发送的消息中附带非 XML 数据。
问. JAXM 基于什么标准?
答. JAXM 基于简单对象访问协议(Simple Object Access Protocol , SOAP)1.1和 SOAP with Attachments 规范。JAXM 还答应 SOAP 实现之上的标准协议实现,例如 SOAP-RP 或 ebXML Transport, Routing & Packaging V1.0–Message Service Specification。
问. 是否必须在 J2EE 平台下使用 JAXM ?
答. 不是,您可以免费使用 Java 2 Platform, Standard Edition (J2SE),就像使用 Java 2 Platform, Enterprise Edition (J2EE) 一样。一个独立客户端(不使用消息提供者的客户端)可以使用 J2SE 平台向可以处理请求-响应消息的 Web 服务发送此消息。这不需要在客户端进行部署或配置,因此很轻易实现。
问. 什么是消息提供者?
答. 消息提供者是一种服务,它使用消息传送基础设施来路由和传递消息。对于客户来说,发送和接受消息是完全透明的。使用消息提供者的应用程序必须使用一个到消息提供者的连接,在 JAXM API 中称之为 ProviderConnection 对象。使用消息提供者还需要某种部署和配置。通常情况下,客户端使用运行在容器中的消息提供者-servlet 或 J2EE 容器。在部署的时候,客户端需要为容器提供关于消息提供者的信息。将来,会有一种部署工具使这个过程更简单。
问. 是否必须使用消息提供者?
答. 不是。只有当您的应用程序需要单向(异步)消息传送时,您才需要使用消息提供者。在这种类型的消息中,一个消息作为一个操作发送给接受者,然后接受者在一段时间后使用另一个不同的操作进行响应。假如您的应用程序使用请求 - 响应样式的消息传送,回送此消息的响应被看作是同一个操作,您不需要消息提供者。当您不使用消息提供者时,您需要使用 SOAPConnection 对象,它支持更简单的请求-响应消息模型。
问. JAXM 消息是否可以被路由到多个目的地?
答. 是的。可以在消息头指定即时接受者。这种能力的一种使用方法是启用自动业务处理。例如,两个商业组织认可他们之间交换的 XML 文档的环境,这样他们可以实现自动生成的消息和响应。比方说这两个商业组织约定订单命令首先进入订购部门,然后进入订单确认部门,然后进入送货部门,最后进入结算部门。每个部门有一个即时接受者(称之为 actor)。在 actor 结束它的处理之后,它将删除头部的所有关于自身内容,并将消息发送给头部中所列出的下一个 actor 。
问. 我是否能在 JAXM 消息中使用 ebXML 头部?
答. 是的,假如您使用一个在 SOAP 上实现的 ebXML 概要文件,那么可以使用 ebXML 头部。一个概要文件是一个标准协议,如 ebXML TRP 或 SOAP-RP ,它工作在 SOAP 之上,提供附加功能。您需要使用消息提供者支持概要文件,而且您需要让接受者使用相同的概要文件。