WEB开发网
开发学院操作系统Linux/Unix 使用 IBM WebSphere MQ JMS 提供程序 阅读

使用 IBM WebSphere MQ JMS 提供程序

 2010-09-27 08:24:05 来源:WEB开发网   
核心提示:IBM® WebSphere® Process Server 和 IBM WebSphere Enterprise Service Bus 产品都包括对调用和提供 Web 服务的支持,本系列文章的第 1 部分介绍了 WebSphere Process Server 和 WebSphere Enterpr

IBM® WebSphere® Process Server 和 IBM WebSphere Enterprise Service Bus 产品都包括对调用和提供 Web 服务的支持。本系列文章的第 1 部分介绍了 WebSphere Process Server 和 WebSphere Enterprise Service Bus V6.02 及 V6.1 中 SOAP over Java Message Service (JMS) 协议的支持。本文是系列文章的第二部分,将揭示如何更改 SOAP over JMS 导出和导入所引用的 Java Naming and Directory Interface (JNDI) 资源,以便它们可以使用 IBM WebSphere MQ JMS 提供程序,而不是 Service Integration Bus (SIBus) JMS 提供程序,来接收和发送 SOAP 消息。要按本文所述的步骤进行操作,您应该了解如何在 IBM WebSphere Integration Developer 中创建模块,以及如何创建 WebSphere MQ 资源。

引言

SOAP over JMS 协议支持仅限于嵌入式 (SIBus) JMS 提供程序所拥有的 JMS 资源的使用,这是由于开发工具将自动地生成这些资源。运行时实现使用了 JMS API,因此通过替换生成的 JMS 资源,允许使用 WebSphere MQ JMS 提供程序来传输 SOAP 消息 (SOAP/MQ JMS)。

了解如何使用 Web 服务 SOAP over JMS 绑定来配置 WebSphere Process Server 和 WebSphere Enterprise Service Bus 中的导入和导出,以便使用 WebSphere MQ JMS 资源。本文提供了一些示例 Service Component Architecture (SCA) 应用程序,这些应用程序都包含使用基于 Web 服务的 SOAP over JMS 绑定的导入和导出。本文还描述了如何对它们进行修改,以便使用 WebSphere MQ JMS 资源。在阅读完本文之后,您可以将本文所描述的步骤应用于其他类似的导入和导出。

导出和导入在操作过程上稍有不同。导出使用消息驱动的 Bean(Message-Driven Bean,MDB)来接收请求,并且它们向每个请求的 JMSReplyTo Header 所指定的目的地发送响应。您可以通过 IBM WebSphere Application Server 管理控制台来修改它们的资源。

导入并不使用 MDB 接收响应,可以将其配置为对每个请求使用单个应答队列或者一个临时应答队列。可以通过 WebSphere Integration Developer 工具中的 JMS URL 来定义它们的资源。对于导出,WebSphere MQ JMS 提供程序和 SIBus JMS 提供程序之间的关键区别在于,后者使用 Java 2 Platform, Enterprise Edition (J2EE) Connector architecture (JCA) 资源适配器作为其实现。这意味着 MDB 是通过激活规范对象来进行配置的,而前者并没有使用 JCA,它是通过侦听器端口对象来进行配置的。WebSphere Integration Developer 使得集成开发人员无需编写复杂的代码即可容易地构建和调用基于 SOAP over JMS 的 Web 服务。WebSphere Integration Developer 将自动地生成 Web 服务资源 JNDI 名称,并在安装时使用 SIBus JMS 提供程序自动地创建这些资源。

要执行这些配置过程,您需要具有下列软件:

带 Refresh Pack 6.0.2 的 WebSphere MQ V6.0

WebSphere Integration Developer V6.0.2 或者 V6.1

WebSphere Process Server V6.0.2 或 V6.1 或者 WebSphere Enterprise Service Bus V6.0.2 或 V6.1

本文中的应用程序模块使用 WebSphere Enterprise Service Bus 版本 6.0.2 和 6.1 进行开发和测试。这些模块是用来说明如何在 WebSphere Integration Developer 和 WebSphere Process Server 或者 WebSphere Enterprise Service Bus 中使用 SOAP over JMS 创建和配置 SCA 模块的示例。WebSphere Integration Developer V6.1 中提供了可下载的项目交换文件。

WebSphere MQ 版本

要使用 WebSphere MQ JMS 提供程序,请确保您的系统中同时安装了 WebSphere MQ 服务器和 WebSphere MQ JMS 客户端库,并且它们的版本是兼容的。WebSphere Process Server 和 WebSphere Enterprise Service Bus 自版本 6.0.2 以后都支持 WebSphere MQ JMS 导入和导出绑定,并且这需要带 Refresh Pack 6.0.2.0 的 WebSphere MQ 服务器版本 6.0 以上。WebSphere Process Server 和 WebSphere Enterprise Service Bus 运行时提供了 WebSphere MQ JMS 客户端库。

如果 WebSphere MQ 对于 WebSphere Process Server 或者 WebSphere Enterprise Service Bus 运行时来说是本地的,那么您可能需要通过 WebSphere Application Server 管理控制台将环境变量 ${MQ_INSTALL_ROOT} 的值更改为 ${WMQ_INSTALL_ROOT}。或者,从 ${WMQ_INSTALL_ROOT}/java/lib 中将 JAR 文件 com.ibm.mqjms.jar 和 com.ibm.mq.jar 复制到 ${WAS_INSTALL_ROOT}/java/lib 中。这样可以确保 WebSphere Process Server 和 WebSphere Enterprise Service Bus 所使用的 WebSphere MQ 客户端库 WebSphere MQ JMS 版本与 WebSphere MQ 服务器是兼容的。

点到点消息传递所需的资源

这个部分描述了定义 WebSphere MQ 和 WebSphere MQ JMS 资源的过程,然后可以通过 Web 服务 SOAP over JMS 绑定的导入或者导出使用它们。这里所提供的资源名称都是一些示例,您可以根据需要对其进行更改。首先,您将了解如何利用队列目的地来使用点到点消息传递模型。随后,在发布/订阅消息传递所需资源部分中,您将了解如何利用主题来使用消息传递模型。有两种方式可以创建 WebSphere MQ 队列管理器和队列:

在 WebSphere MQ Explorer 中创建它们。

使用 WebSphere MQ 命令在命令行窗口中创建它们。

例如,在命令行窗口中,您可以输入 > crtmqm QMGR 来创建队列管理器,可以输入 strmqm QMGR 来启动该队列管理器。(参见参考资料,其中提供了 WebSphere MQ V6.0 信息中心的链接,该信息中心详细介绍了如何创建所需的对象。)

这个过程需要创建下面的 WebSphere MQ 队列管理器和队列:

WebSphere MQ 队列管理器:QMGR

WebSphere MQ 队列:QMGR 中的 REQUESTQ 和 RESPONSEQ 用于使用 Web 服务 SOAP over JMS 绑定的导出

WebSphere MQ 队列:QMGR 中的 REQUESTQ1 和 RESPONSEQ1 用于使用 Web 服务 SOAP over JMS 绑定的导入

对应于这些 WebSphere MQ 资源,您需要在 WebSphere Enterprise Service Bus 或者 WebSphere Process Server 管理控制台中创建 WebSphere MQ JMS Provider 资源。您必须在 WebSphere MQ JMS Provider 之下、在节点范围内创建这些资源。使用下面的步骤来创建导出和导入配置所需的资源:

为导出和导入创建用于请求连接的 WebSphere MQ 队列连接工厂:requestMQCF,它使用 QMGR。

使用 QMGR 为导出和导入创建用于应答连接的 WebSphere MQ JMS 队列连接工厂:replyMQCF。

使用 REQUESTQ 创建一个 WebSphere MQ JMS 队列目的地 requestQ,以便在导出中接收请求消息。

使用 REQUESTQ1 创建一个 WebSphere MQ JMS 队列目的地 requestQ1,以便发送来自导入的请求消息。

在服务器中创建一个侦听器端口:MQListener,它使用 requestMQCF 和 requestQ,如图 1 所示。

在服务器中创建一个侦听器端口:MQListener1,它使用 requestMQCF 和 requestQ1,如图 1 所示。

图 1. 用户定义的侦听器端口的示例

使用 IBM WebSphere MQ JMS 提供程序

使用 RESPONSEQ 创建一个用于发送响应消息的 WebSphere MQ 队列目的地 replyQ。

注意:客户端应用程序使用这个队列作为发送应答的目的地,可以通过 JMS 消息中的 JMSReplyTo Header 来指定。这个目的地并不是针对 Web 服务 SOAP over JMS 导出或者导入绑定而配置的。

点对点消息传递模型的应用场景

在这个部分中详细描述的点到点场景使用了三个应用程序,如图 2 所示。

图 2. 点到点消息传递模型场景的示例

使用 IBM WebSphere MQ JMS 提供程序

WSMQJMSClient:使用 JavaServer Pages (JSP) sendMessage.jsp 发送 SOAP 消息的 Web 应用程序。

WSMQJMSBackEndService:使用 WebSphere MQ 资源的基于 SOAP over JMS 的 Web 服务,其实现调用了另一个 Web 服务。

WSMQJMSServiceProvider:使用 WebSphere MQ 资源的另一个 Web 服务提供程序。这些应用程序之间的消息流如下所示:

客户端向一个已定义的 WebSphere MQ 队列发送 SOAP 消息。

利用基于 Web 服务 SOAP over JMS 绑定的导出将 SOAP 消息从 WebSphere MQ 队列转换为业务对象。

Java 组件处理该消息,并且通过使用 Web 服务 SOAP over JMS 绑定的导入调用另一个 Web 服务提供程序。

当请求操作是请求/响应操作时,该 Java 组件通过使用 Web 服务 SOAP over JMS 绑定的导出向已定义的 WebSphere MQ 队列返回响应消息。

创建使用 SOAP over JMS 导出绑定的应用程序

这个应用程序提供了一个使用 Web 服务 SOAP over JMS 绑定的导出,以及使用 Web 服务接口实现的 Java 组件。这个导出负责接收 JMS 客户端应用程序发送的 SOAP 消息。然后,运行时将这些 SOAP 消息转换为业务对象,以供该应用程序内部的组件使用。本文提供了这个应用程序作为示例,然后对其进行修改,以便使用 WebSphere MQ JMS 资源;对于您自己的使用 Web 服务 SOAP over JMS 绑定的导出,也可以应用相同的操作步骤。让我们对其进行分析:

创建一个名为 MyLibrary 的库,其中包含一个带有三个函数的 CustomerService 接口,如清单 1 所示。

清单 1. CustomerService 接口

CustomerInfo getCustomerInfo(String id);
void createCustomer(String id);
int getQuantity(String id);

从 WebSphere Integration Developer 中创建一个名为 WSMQJMSServiceProvider 的模块,该模块包含一个使用 Web 服务 SOAP over JMS 绑定的导出和一个 Java 组件。ProviderSOAPMQJMSExport 包含 Web 服务 SOAP over JMS 绑定,如图 3 所示。

图 3. WSMQJMSServiceProvider 应用程序

使用 IBM WebSphere MQ JMS 提供程序

请确保这个应用程序依赖于 MyLibrary。

构建 Web 服务应用程序

要从 WebSphere Integration Developer 中构建和安装项目,请执行下面的步骤:

构建项目 WSMQJMSServiceProvider。

选择 File > Export > Export project to integration module export,以便将该项目导出到 .ear 文件:WSMQJMSServiceProvider.ear。

启动 WebSphere Process Server 或者 WebSphere Enterprise Service Bus 运行时。

在 WebSphere Application Server 管理控制台中安装该 .ear 文件。

安装并且修改该应用程序,以便使用 WebSphere MQ JMS

必须从 WebSphere Application Server 管理控制台中安装该应用程序,以便可以在安装期间或者安装完成之后对某些资源进行更改。对于使用 Web 服务绑定的导出,在安装之前不需要进行任何更改。第一种安装方法适用于 WebSphere Process Server 和 WebSphere Enterprise Service Bus V6.0.2;如果在安装过程的第一步中启用了 show me more installation options and parameters 选项,那么它同样适用于 WebSphere Process Server 和 WebSphere Enterprise Service Bus V6.1。第二种方法同时适用于版本 6.0.2 和 6.1,在本文的稍后部分中将对其进行介绍。

注意:不需要安装 WebSphere MQ 资源适配器,因为从 WebSphere Process Server V6.0.2 之后的版本都提供了对 WebSphere MQ 的支持。

方法 1:在安装期间指定 MQ JMS 资源:

安装 WSMQJMSServiceProvider.ear 文件。

在安装过程的第 6 步中,选择侦听器端口,并将其指定为 MQListener1(以前定义为 WebServicesJMSRouter_ProviderSOAPMQJMSExport_CustomerServiceJmsPort 的绑定),如图 4 所示(请参见图 4 的较大版本)。

图 4. 为 SOAP/MQJMS 导出配置侦听器端口

使用 IBM WebSphere MQ JMS 提供程序

安装过程的第 8 步称为将资源引用映射为资源,通过选择 ProviderSOAPMQJMSExport 并单击 Apply 按钮,选择 specify authentication method 下面的 none。

将导出 Enterprise JavaBeans (EJB) WebServicesJMSRouter_ProviderSOAPMQJMSExport _CustomerServiceJmsPort JNDI 的名称从 jms/WebServicesReplyQCF 更改为 replyMQCF,如图 5 所示(请参见图 5 的较大版本)。

图 5. 映射 JNDI 名称和 WebSphere MQ 资源

使用 IBM WebSphere MQ JMS 提供程序

在安装过程的其余部分中使用缺省设置。

不要更改模块 JNDI 名称,因为模块 EJB 使用 SIBus JMS 连接工厂以支持与其他 SCA 模块之间的异步通信。

启动该应用程序,并确保启动了侦听器端口 MQListener1。

创建一个带导入和导出、并具有 Web 服务 SOAP over JMS 绑定的应用程序

这里所描述的应用程序包括下面的部分:

一个使用 Web 服务 SOAP over JMS 绑定的导出,用于接收 SOAP 消息并将它们转换为业务对象。

一个 Java 组件实现,用于在业务对象中打印数据域。

一个使用 Web 服务 SOAP over JMS 绑定的导入,它调用了 WSMQJMSServiceProvider。

在 WebSphere Integration Developer 中创建该应用程序,如图 6 所示。这说明了第二种修改方法通过在安装完成之后配置 JNDI 资源,以使用 WebSphere MQ JMS。

图 6. WSMQJMSBackEndService 应用程序

使用 IBM WebSphere MQ JMS 提供程序

在您创建了这个应用程序之后,请执行下面的步骤:

选择 CustomerServiceImport1,并修改地址属性的目的地和连接工厂值,如图 7 所示(请参见图 7 的较大版本)。经过更新的地址属性值如下所示:

清单 2. 使用 SOAP over JMS 绑定的 Web 服务导入地址属性

jms:/queue?destination=requestQ1&
connectionFactory=requestMQCF&
targetService=ProviderSOAPMQJMSExport_CustomerServiceJmsPort

图 7. SOAP/MQJMS 导入属性

使用 IBM WebSphere MQ JMS 提供程序

构建应用程序。

将该应用程序导出到 .ear 文件:WSMQJMSBackEndService.ear。

按照缺省配置安装这个 .ear 文件,无需进行任何更改。

在安装完成之后更改资源;转到已安装的应用程序的列表。

双击 WSMQJMSBackEndServiceApp 应用程序以查看其配置,如图 8 所示。

图 8. 应用程序的配置

使用 IBM WebSphere MQ JMS 提供程序

更改 MDB 的侦听器绑定(这个操作与方法 1 中的第 2 步相同),并指定 MQListener 作为侦听器端口。

采用与方法 1 中第 3 步相同的方式更改将资源引用映射为资源 步骤,如图 9 所示,并将导出 EJB WebServicesJMSRouter_ BackEndSOAPMQJMSExport_CustomerServiceJmsPort JNDI 名称从 jms/WebServicesReplyQCF 更改为 replyMQCF。

图 9. 修改资源引用

使用 IBM WebSphere MQ JMS 提供程序

创建 SOAP/MQ JMS 客户端应用程序

这个部分描述了客户端应用程序所需的行为,该客户端应用程序将 SOAP 消息发送到 WebSphere MQ JMS 目的地,然后后者将对应于之前步骤中经过重新配置的导出。必须采用合适的方式提供 SOAP 消息的格式和属性,以便 SOAP over JMS 导出正确地使用这些消息。清单 3 介绍了一个使用之前定义的 CustomerService 接口的、单向消息的 SOAP 消息示例。

清单 3. SOAP JMS 消息的示例

<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
   xmlns:q0="http://MyLibrary/CustomerService"
   xmlns:xsd="http://www.w3.org/2001/XMLSchema"
   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<SOAP-ENV:Body>
 <q0:createCustomer>
  <id>123</id>
 </q0:createCustomer>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>

在向 SOAP over JMS 导出发送的消息中,必须设置下面三个 JMS 用户属性:

targetFunctionName: CustomerService 接口中要调用的操作(函数)的名称。在本示例中,这个值必须是 createCustomer 或者 getCustomerInfo 其中之一。

JMSReplyTo:响应消息的目的地设置为 replyQ。

targetService:Web 服务端口名。这个值必须是 BackEndSOAPMQJMSExport_CustomerServiceJmsPort。图 10 显示了将客户端应用程序实现为 JSP 的示例,它向 requestQ 发送 SOAP 消息,并从 replyQ 获得返回的响应。

图 10. 客户端应用程序发送请求消息

使用 IBM WebSphere MQ JMS 提供程序

在单击 sendMessage 按钮之后,将在控制台窗口中显示运行时,如图 11 所示,并且收到返回给 JSP 客户端的响应消息,如图 12 所示。

图 11. 控制台窗口中的运行时结果

使用 IBM WebSphere MQ JMS 提供程序

图 12. 接收到的来自客户端应用程序的响应消息

使用 IBM WebSphere MQ JMS 提供程序

您还可以使用 RFHUtil 工具(有关更多信息,请参见参考资料)以查看 WebSphere MQ 队列中的 SOAP 消息。RFHUtil 允许您从/对文件或者队列读取/写入数据,并采用各种不同的格式来显示数据。通过使用 RFHUtil 5.0.5,图 13 显示了来自 RESPONSEQ 目的地的 SOAP 消息示例。

图 13. 来自 RESPONSEQ 的响应 SOAP 消息

使用 IBM WebSphere MQ JMS 提供程序

发布/订阅消息传递所需的资源

这个部分描述了使用 WebSphere MQ JMS 提供程序,如何通过使用 Web 服务 SOAP over JMS 绑定的导入和导出来使用发布/订阅模型。

创建 WebSphere MQ 资源

发布/订阅模型适用于某个应用程序(发布者)向一组感兴趣的应用程序(订阅者)发送消息的场景。订阅者在一个特定的主题中注册它们的兴趣,而发布者则说明与其消息相关的主题。发布者和订阅者之间存在一个代理,它负责向合适的订阅者发送某个主题下的每则消息的副本。WebSphere MQ 包括一个嵌入式代理。要通过 WebSphere MQ 使用发布/订阅模型,您需要在 WebSphere Enterprise Service Bus 或者 WebSphere Process Server 管理控制台中、在节点范围内配置下面的 WebSphere MQ 资源:

创建一个 WebSphere MQ JMS 主题连接工厂。传输类型必须是 CLIENT,并且突出显示了这些资源,如图 14 所示。代理版本为 Basic,允许您使用 WebSphere MQ 嵌入式代理。

图 14. WebSphere MQ 主题连接工厂的配置

使用 IBM WebSphere MQ JMS 提供程序

创建一个名为 MQTopicDest 的 WebSphere MQ JMS 主题目的地,其 JNDI 名称为 MQTopicDest,其基本主题名称为 Greetings,如图 15 所示。

图 15. JNDI 名称为 MQTopicDest 的 WebSphere MQ 主题的配置

使用 IBM WebSphere MQ JMS 提供程序

创建一个名为 MQTopicListener 的 WebSphere MQ JMS 侦听器端口,该端口使用了 MQTopicCF 和 MQTopicDest,如图 1 所示。

配置 WebSphere MQ 代理服务

要使用 WebSphere MQ 代理服务,需要执行一个初始安装步骤(仅在首次使用代理时需要执行该步骤)。这个步骤将创建一些队列,包括 SYSTEM.BROKER.CONTROL.QUEUE 以用于处理订阅消息:

$WMQ_INSTALLJavabin runmqsc QMGR <MQJMS_PSQ.mqsc

如果代理没有运行,那么可以使用命令 $WMQ_INSTALL/bin strmqbrk ¨Cm MQGR 从命令行窗口启动 SYSTEM.BROKER,或者从 WebSphere MQ Explorer 中启动代理,如图 16 所示(请参见图 16 的较大版本)。

图 16. WebSphere MQ 代理服务的状态

使用 IBM WebSphere MQ JMS 提供程序

发布/订阅模型的应用程序场景

这个应用程序场景适用于发布者和订阅者模型,以便它们可以使用 WebSphere MQ 资源通过 SOAP 消息进行通信。图 17 是该应用程序场景的一个示例。它包括一个 WSMQJMSPublisher 应用程序和一个 WSMQJMSSubscriber 应用程序。WSMQJMSPublisher 是用于向 MQTopicDest 主题发布消息的客户端应用程序。WSMQJMSSubscriber 是订阅 MQTopicDest 主题以接收 SOAP 消息的 Web 服务应用程序。

图 17. 发布/订阅模型的应用程序场景

使用 IBM WebSphere MQ JMS 提供程序

创建具有单向操作的接口

在通过 Web 服务 SOAP over JMS 绑定的导入或者导出来使用发布/订阅时,仅支持单向操作。因此,需要使用只包含单向操作的接口。使用下面的步骤创建该接口:

在 MyLibrary 下创建一个名为 GreetingService 的新接口。

在该接口中创建一个单向操作: void sayHello(String message);

保存并且构建 MyLibrary。

创建订阅者应用程序

在 WebSphere Integration Developer 中,创建一个名为 WSMQJMSSubscriber 的、具有使用 Web 服务 SOAP over JMS 绑定的导出(名为 SubscriberSOAPMQJMSExport)和 Java 组件(名为 HandleTopic)的新模块,如图 18 所示。

图 18. Web 服务应用程序的示例

使用 IBM WebSphere MQ JMS 提供程序

这个模块说明了使用 Web 服务 SOAP over JMS 绑定的导出如何使用 WebSphere MQ JMS 主题。

打开 MyLibrary 中名为 WSMQJMSSubscriber_SubscriberSOAPMQJMSExport.wsdl 的 WSDL 文件,并将消息类型从 queue 更改为 topic,这样一来,SubscriberSOAPMQJMSExport 绑定的地址属性将与清单 4 中所示类似。

清单 4. 使用 SOAP JMS 绑定的 web 服务导出地址属性

jms:/topic?destination=jms/SubscriberSOAPMQJMSExport&
connectionFactory=jms/SubscriberSOAPMQJMSExportQCF&
targetService=SubscriberSOAPMQJMSExport_GreetingServiceJmsPort

在图 19 所示的 SOAP over JMS 导出属性窗口中,您不能够更改这项内容。

图 19. WSMQJMS 导出属性

使用 IBM WebSphere MQ JMS 提供程序

这可以确保该导出了解对某个主题进行订阅,以便接收相应的请求消息。HandleTopic 方法的实现只在方法 sayHello(String message) 中打印出消息,后者由 SubscriberSOAPMQJMSExport 进行传递。

保存这些更改,以构建 WSMQJMSSubscriber 应用程序。

部署并安装订阅者应用程序

将 WSMQJMSSubscriber 应用程序导出到 EAR 文件,并从 WebSphere Enterprise Service Bus 或者 WebSphere Process Server 管理控制台安装它。此次除了仅需要将激活规范更改为侦听器端口 MQTopicListener 之外,其他的操作步骤与前面相同(请参见安装和修改应用程序以使用 WebSphere MQ JMS 部分)。

创建发布者应用程序

这个部分描述了如何创建示例发布者应用程序,该应用程序将利用基于 Web 服务 SOAP over JMS 绑定的导入。我们已经选择了创建模块,其中仅包含使用 Web 服务 SOAP over JMS 绑定的导入。下面的步骤向您显示了如何创建一个这样的模块:

创建名为 WSMQJMSPublisher 的新模块。

导航到 MyLibrary > Web Service Ports > SubscriberSOAPMQJMSExport_GreetingServiceJmsPort。

将 SubscriberSOAPMQJMSExport_GreetingServiceJmsPort 拖曳到 WSMQJMSPublisher Assembly Diagram 之上,以创建使用 Web 服务 SOAP over JMS 绑定的导入。

将导入组件的名称更改为 GreetingServiceSOAPMQJMSImport。

将地址属性的值更改为清单 5 中所示的值。

清单 5. 使用 SOAP over JMS 绑定的 Web 服务导入针对某个主题目的地的地址属性

jms:/topic?destination=MQTopicDest&
connectionFactory=MQTopicCF&
targetService=SubscriberSOAPMQJMSExport_GreetingServiceJmsPort

您可以直接从导入的 Web 服务绑定属性窗口中更改这项内容,如图 20 所示。

图 20. WSMQJMSPublisher 和导入属性

使用 IBM WebSphere MQ JMS 提供程序

构建该模块,并将其导出为 EAR 文件。

在 WebSphere Integration Developer 中测试发布者应用程序

在 WebSphere Integration Developer 中,将发布者应用程序添加到当前正在运行的服务器中:

右键单击项目 TestWSMQJMSPub,并选择 Test > Test Module(请参见图 21)。

图 21. 测试发布者的结果

使用 IBM WebSphere MQ JMS 提供程序

在消息域中输入一个字符串,如 hello,然后该消息将在主题 Greetings 之下进行发布。

订阅者接收消息,并准确地打印出该消息,如控制台窗口中所示。

结束语

本文使用了点到点消息传递模型和发布/订阅消息传递模型,以说明如何配置 Web 服务 SOAP over JMS 绑定所使用的 WebSphere MQ 资源。对于点到点消息传递模型,在应用程序安装期间或者安装之后,您需要更改导出以使用 WebSphere MQ JMS 消息侦听器,并将导出应答连接工厂修改为 WebSphere MQ JMS 连接工厂。对于导入,您只需要修改地址属性:在应用程序安装之前,将目的地设置为预定义的 WebSphere MQ JMS 队列目的地,并且将连接工厂设置为预定义的 WebSphere MQ JMS 连接工厂。对于请求/响应消息,客户端应用程序必须在 JMS 消息中设置 JMSReplyTo Header。

对于发布/订阅消息模型,您需要更改导出绑定地址属性,将目的地类型设置为 topic。在应用程序安装期间或者安装之后,您还需要将导出从 JCA 激活规范更改为预定义的 WebSphere MQ JMS 侦听器端口。对于导入,在应用程序安装之前,您需要将目的地更改为 WebSphere MQ JMS 主题目的地,并将连接工厂更改为 WebSphere MQ JMS 主题连接工厂。

下载

描述名字大小下载方法
Applications for point-to-point messagingSOAPMQJMSP2P.zip77KBHTTP
Applications for publish/subscribe messagingSOAPMQJMSPubSub.zip51KBHTTP

Tags:使用 IBM WebSphere

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接