使用 JAX-WS JMS 异步响应消息侦听器
Java™ API for XML-Based Web Services (JAX-WS) 包含 Java 消息服务 (JMS) 异步响应消息侦听器,它用于接收对使用 JMS 传输的异步 JAX-WS 请求的响应。JMS 异步响应消息侦听器在应用程序服务器和应用程序客户机环境中使用。
开始之前
JAX-WS 支持通过使用回调或轮询模型来异步调用 Web Service 操作。当 JAX-WS 客户机使用 JMS 传输来调用异步操作时,将由异步响应消息侦听器接收响应。 要了解如何使用 JAX-WS 异步客户机调用模型,请阅读有关异步调用 JAX-WS Web Service 的相关信息。
关于此任务
当客户机应用程序使用 JMS 传输时,JMS 异步响应消息侦听器在 Web Service 客户机环境中用于接收入局异步响应。侦听器要求连接工厂和队列正确运行。先配置连接工厂和队列,然后通过设置 Java 系统属性来指定连接工厂和侦听器队列的 JNDI 名称。运行客户机的环境确定设置系统属性的方式。
客户机使用 JMS 传输调用第一个异步 JAX-WS 操作时,Web Service 客户机运行时环境将自动启动 JMS 异步响应消息侦听器。
使用异步响应消息侦听器配置的连接工厂和队列用于在特定的 Java 进程中调用的所有请求,例如应用程序服务器或应用程序客户机容器的 Java 进程。可以在不同的 Java 进程之间共享连接工厂。但是,不能在 Java 进程之间共享队列。
过程
结果
使用 JMS 传输时,JAX-WS Web Service 客户机配置为使用 JMS 异步响应消息侦听器来接收异步响应消息。
示例
假设您具有 JAX-WS Web Service 客户机,该客户机在应用程序客户机容器环境中运行并且使用 JMS 传输与服务器通信。同样假设客户机调用异步 JAX-WS 操作。可以使用 JNDI 名称 jms/MyAppCF 创建连接工厂,并使用 JNDI 名称 jms/MyAppAsyncReplyQueue 创建队列。使用 launchClient 命令调用客户机时,请如以下命令中所示,指定队列和连接工厂的 JNDI 名称:
launchClient MyAppClient.ear \
-CCDcom.ibm.websphere.webservices.jms.AsyncReplyQueueName=jms/MyAppReplyQueue \
-CCDcom.ibm.websphere.webservices.jms.AsyncReplyCFName=jms/MyAppCF \
<application arguments>