本主题提供参考,配置 SOAtest 和 Virtualize 以用于流行的 JMS 提供程序。
本章包含:
添加所需 jar 文件
若要将所需 jar 文件(下面表中所列)添加到SOAtest 和 Virtualize 类路径,请完成以下内容:
- 选择 Parasoft> Preferences。
- 打开 Parasoft> System Properties 页面。
- 单击 Add JARS 按钮,选择并勾选需要添加的 JAR 文件。
JNDI 身份验证
任何时候,如果需要用户名和密码来连接 JMS 系统,而 JMS 系统配置为需要对 JNDI 访问进行身份验证,则必须配置以下 JNDI 属性:
- java.naming.security.principal=<username>
- java.naming.security.credentials=<password>
Apache ActiveMQ
针对 | 针对 Apache Active MQ |
最小所需的 jar 文件 | 可在 ActiveMQ 安装目录 - activemq-all-[version].jar 下找到。 |
典型的提供者 URL 模式 | tcp://hostname:61616 |
工厂类 | JNDI 初始上下文工厂类 默认的连接工厂 JNDI 名称 |
了解更多 | http://activemq.apache.org/jndi-support.html |
Apache Qpid
针对 | 针对 Apache Qpid |
最小所需的 jar 文件 | 可在 http://qpid.apache.org/download.html的 qpid-java-client-{ver}.tar.gz 中找到。 jar 的数量根据 Qpid 版本的变化而变化。Qpid 0.8 版本下的 jar 包括以下:
|
连接 URL JNDI 属性 | connectionfactory.<jndiname> 例如: connectionfactory.local = amqp://user:password@clientid/testpath?brokerlist='tcp://localhost:5672' |
工厂类 | JNDI 初始上下文工厂类 |
了解更多 | https://cwiki.apache.org/qpid/how-to-use-jndi.html |
GlassFish MQ
针对 | 针对 GlassFish |
最小所需的 jar 文件 | GlassFish 3 - 可在 [GlassFish install directory]/glassfish/lib下找到:- gf-client.jar 注意,gf-client.jar 引用了 GlassFish 3 安装的其他几十个 jar 文件。必须引用 GlassFish 安装目录中的 gf-client.jar,以便能够找到并加载引用的 jar 文件。GlassFish 可以从 http://glassfish.java.net/加载。 GlassFish 2 - 可在 [GlassFish install directory]/lib下找到: - appserv-admin.jar |
典型的提供者 URL 模式 | iiop://yourhostname:3700 |
工厂类 | JNDI 初始上下文工厂类 注意,GlassFish 拥有另一个 JNDI 初始上下文工厂类,其名为 "com.sun.appserv.naming.S1ASCtxFactory"。这个类的性能很差,不应该使用。相反地,使用所提及的 SerialInitContextFactory 类,该类即既适用于 GlassFish 2 也适用于 GlassFish 3。 |
注意 | GlassFish 客户端和 GlassFish 服务端相互执行反向 DNS 查找。如果服务端没有识别到客户端的主机名,则可以向服务端的主机文件添加客户端的主机名和 IP 地址。如果客户端没有识别到服务端的主机名,则可以向客户端的主机文件添加服务端的主机名和 IP 地址。通常情况下,主机文件在 Unix 上是 /etc/hosts ,在 Windows 上是 %SystemRoot%\system32\drivers\etc\hosts。 |
了解更多 | http://glassfish.java.net/ |
IBM WebSphere 应用程序服务器 (WAS)
针对 | 针对 WAS 默认的 JMS 提供程序。Parasoft 推荐使用 IBM 的 JMS 精简型客户端,它由 WAS 7.0 或更高版本提供,并且可以与 WAS 6.0.2 及更高版本相互作用。 |
最小所需的 jar 文件 | 可在 [WAS installation dir]/runtimes |
典型的提供者 URL 模式 | iiop://yourhostname:2809/ |
工厂类 | JNDI 初始上下文工厂类 |
了解更多 | WebSphere 应用程序服务器网络部署,版本 7.0 文档 |
如果没有 WAS 7.0 或更高版本该怎么办?
如果没有使用(或没有访问)WAS 7 安装,则下载并安装可以与 WAS 6.0.2 及更高版本相互作用的 JMS 的 IBM 客户机:
- 从 http://www-01.ibm.com/support/docview.wss?uid=swg24012804下载 JMS 客户机安装程序 jar。
- 按照下载页面上的说明为 SUN JRE 安装 JMS 和 JNDI jars。安装客户端 jars 的命令类似于:
"java -jar sibc_oeminst-o0902.06.jar jms_jndi_sun C:\ibmjms”
客户端 jars 将安装在lib
文件夹下。 - 添加 JNDI 属性
com.ibm.CORBA.ORBInit=com.ibm.ws.sib.client.ORB
- 为了简单起见,可以在 JRE 的 lib 文件夹中 jndi.properties 文件中对这个 jndi 属性进行全局设置。
- 对于此产品的独立构建,JRE lib 文件夹存在于 Parasoft/Test/{ver}/plugins/com.parasoft.xtest.jdk.eclipse.core.{platform}.{arch}_{ver}/jdk/jre/lib。
- 当使用 WAS 7 试运行文件夹中的 jar 时,不需要此 JNDI 属性。
IBM WebSphere MQ (MQ Series)
针对 | 针对 WebSphere MQ JMS 提供程序 |
最小所需的 jar 文件 | 针对 MQ 9可在 [WebSphere MQ installation directory]/java/lib下找到这些 jar 文件:
针对 MQ 8可在 [WebSphere MQ installation directory]/java/lib下找到这些 jar 文件:
针对 MQ 7.0可在 [WebSphere MQ installation directory]/java/lib下找到这些 jar 文件:
还需要下载以下 jar 文件:
针对 MQ 6.0可在 [WebSphere MQ installation directory]/java/lib下找到这些 jar 文件:
还需要下载以下 jar 文件:
MQ 客户端下载MQ 客户端中还包含 [WebSphere MQ installation directory]/java/lib 下的这些 jar 文件。IBM 不再提供 MQ 6 客户端。MQ 7 客户端再 http://www-01.ibm.com/support/docview.wss?uid=swg24019253上可用。 |
典型的提供者 URL 模式 | yourhostname:1414/SYSTEM.DEF.SVRCONN |
工厂类 | WebSphere MQ JNDI 初始化上下文工厂类 - com.ibm.mq.jms.context.WMQInitialContextFactory |
SSL 配置 | WebSphere JMS 客户机可以通过在初始上下文中设置合适的属性来实现 SSL 连接。WebSphere MQ 和 WebSphere JMS 客户机都将为 SSL 连接设置相同的属性。 |
没有 JNDI 的 JMS 消息传递 | 在属性选项卡下,定义以下属性: import com.ibm.mq.jms.*; ... MQConnectionFactory cf = new MQConnectionFactory(); cf.setHostName(hostname); cf.setPort(port); cf.setQueueManager(queuemanager); cf.setChannel(channel); cf.setTransportType(JMSC.MQJMS_TP_CLIENT_MQ_TCPIP); cf.setFailIfQuiesce(JMSC.MQJMS_FIQ_YES); cf.setUseConnectionPooling(true); |
其他说明 | IBM 的 JNDI 通过发送用户的登录名来使用 Websphere MQ 服务器对自己进行身份验证。通常情况下,用户名是在启用 SOAtest/Virtualize 之前登录到工作空间时所提供的。 如果 MQ 服务器没有识别到用户名,则工具将失败,附带错误信息 "javax.jms.JMSSecurityException:MQJMS2013:为 MQQueueManager 提供的身份验证无效"。 该错误可以通过在 Websphere MQ 服务端机器上添加 Windows 用户账号解决。此账户应该1)与本地机器上的账户具有相同的用户名,该机器即SOAtest 和 Virtualize正在运行的机器;2)作为 "mqm" IBM WebSphere MQ 管理组的成员。 作为一种选择,可以通过更改 user.name Java 系统属性值来使用不同的用户名。该系统属性可以配置,通过启动SOAtest 和 Virtualize使用 还可以在测试套件执行期间更改 Java 系统属性,通过使用扩展工具调用 SUN 的 Java API 中的 java.lang.System.setProperty() 方法。 有关该错误的更多详情,请查阅 http://www.mqseries.net/phpBB/view-topic.php?t=40640。 |
了解更多 | http://www-01.ibm.com/software/integration/wmq/library/ http://publib.boulder.ibm.com/infocenter/wmqv7/v7r0/topic/com.ibm.mq.csqzaw.doc/jm10320_.htm |
JBoss JMS
针对 | 针对 JBoss JMS,以下 jar 列表基于 JBoss 5.0 |
最小所需的 jar 文件 | 可在 [JBoss install dir]/client |
典型的提供者 URL 模式 | yourhostname |
工厂类 | JNDI 初始上下文工厂类 |
打开消息队列(OpenMQ)
注意,OpenMQ 可以通过独立运行,也可以作为 Glassfis App 服务端的一部分运行,在这里它被称为“Glassfish MQ”。如果正在使用 Glassfish 中的 OpenMQ,请查阅 GlassFish 部分。
针对 | 针对 OpenMQ 服务器 |
最小所需的 jar 文件 | 可在 [OpenMQ install dir]/mq/lib |
典型的提供者 URL 模式 | yourhostname |
工厂类 | JNDI 初始上下文工厂类 |
了解更多 | http://mq.java.net |
Oracle 高级队列(AQ)
针对 | 针对 Oracle 高级队列(AQ) |
最小所需的 jar 文件 | 可从 Oracle 数据库安装中找到: 或 从 Oracle Weblogic 服务器安装中找到: |
提供程序 URL | 保留此字段为空。 |
JNDI 初始上下文工厂类 | oracle.jms.AQjmsInitialContextFactory |
连接工厂 JNDI 名称 | 其中一个以下项: |
所需的 JNDI 属性 | java.naming.security.principal=<username> |
队列名/主题名 | 队列名以 |
注意 | Oracle 数据源老版本中的 aqapi.jar(如 10g)可能缺少初始上下文工厂类。使用 Oracle 数据库 11g 及更高版本的 jar 文件。最新版本的 Oracle 数据库 Express 版本(XE)可以在 oracle.com中下载: Oracle 数据库 Express 版本 11g 发行版 2 |
了解更多 | 与 Oracle AQ JMS 相互作用 |
Oracle BEA WebLogic
针对 | 针对 Oracle BEA WebLogic |
最小所需的 jar 文件(Thin 客户机)* | 可在 [weblogic home]/wlserver_x/server/lib 注意,可能需要其他 jar 文件。我们推荐使用完整客户端;这一点使您不必寻找和添加许多 jar。 |
最小所需的 jar 文件(Full 客户机)* | 按照说明中所描述那样为“Creating a wlfullclient5.jar for JDK 1.5 client applications.”构建单个 wlfullclient5.jar。 |
典型的提供者 URL 模式 | Thin 客户机: Full 客户机: |
工厂类 | JNDI 初始上下文工厂类: |
了解更多 | http://docs.oracle.com/cd/E12840_01/wls/docs103/client/jarbuilder.html |
Progress Sonic MQ/ESB
针对 | 针对 Progress Sonic MQ/ESB |
最小所需的 jar 文件 | 可在 [sonic install dir]/MQ7.x/lib 注意,不能一起使用 SonicMQ 的 broker.jar 和 TIBCO 的 tibcojms.jar。 |
典型的提供者 URL 模式 | tcp://yourhostname:2506 |
工厂类 | JNDI 初始上下文工厂类 |
了解更多 | 请参考 SonicMQ 应用程序项目指南、Appendix A (使用 Sonic JNDI SPI),也可以参考其他相关部分。 |
RabbitMQ
针对 | 针对 RabbitMQ |
最小所需的 jar 文件 | 从 Maven's Central Repository下载客户端库。 rabbitmq-jms-<version>.jar |
.Bindings 文件示例 | #此文件由 JNDI FSContext 使用。 #Wed Jan 31 15:36:15 PST 2018 ConnectionFactory/FactoryName=com.rabbitmq.jms.admin.RMQObjectFactory ConnectionFactory/ClassName=javax.jms.ConnectionFactory ConnectionFactory/RefAddr/0/Type=name ConnectionFactory/RefAddr/0/Encoding=String ConnectionFactory/RefAddr/0/Content=jms/ConnectionFactory ConnectionFactory/RefAddr/1/Type=type ConnectionFactory/RefAddr/1/Encoding=String ConnectionFactory/RefAddr/1/Content=javax.jms.ConnectionFactory ConnectionFactory/RefAddr/2/Type=factory ConnectionFactory/RefAddr/2/Encoding=String ConnectionFactory/RefAddr/2/Content=com.rabbitmq.jms.admin.RMQObjectFactory ConnectionFactory/RefAddr/3/Type=host ConnectionFactory/RefAddr/3/Encoding=String ConnectionFactory/RefAddr/3/Content=host.company.com ConnectionFactory/RefAddr/4/Type=port ConnectionFactory/RefAddr/4/Encoding=String ConnectionFactory/RefAddr/4/Content=5672 |
典型的提供者 URL 模式 | 包含 .bindings 文件的目录路径。 file://C:/JNDI/rabbitMQ/ |
初始上下文 | com.sun.jndi.fscontext.RefFSContextFactory |
连接工厂 | JNDI 初始上下文工厂类 |
Solace JMS
针对 | 针对 Solace JMS |
最小所需的 jar 文件 | commons-lang-<version>.jar sol-common-<version>.jar sol-jcsmp-<version>.jar sol-jms-<version>.jar |
典型的提供者 URL 模式 | smf://<host>:<port> |
工厂类 | JNDI 初始上下文工厂类 必须设置其他 JNDI 属性 |
Sun Java 系统消息队列(Sun MQ)
针对 | 针对 Sun MQ 服务器 |
最小所需的 jar 文件 | 可在 [Sun MQ install dir]Sun/MessageQueue/mq/lib |
典型的提供者 URL 模式 | yourhostname |
工厂类 | JNDI 初始上下文工厂类 |
了解更多 | 请查阅 Sun Java 系统消息队列管理 3.x/4.x 指南,快速启动(Quick-Start)章节教程。此文档可从 http://docs.sun.com/app/docs/prod/message?l=en#hic下载。在该文档中,导航到 Software> Application & Integration Services> Message Queue。 |
TIBCO EMS
针对 | 针对 TIBCO EMS |
最小所需的 jar 文件 | 可在 [TIBCO install dir]/ems/clients/java 注意,不能一起使用 SonicMQ 的 broker.jar 和 TIBCO 的 tibcojms.jar。 |
典型的提供者 URL 模式 | tcp://yourhostname:7222 yourhostname (if using default port numbers) |
工厂类 | JNDI 初始上下文工厂类 |
SSL 配置 | 必须配置以下 JNDI 属性: 对于双向 SSL,还需配置以下其他属性: |
注意 | 任何时候,连接到 Tibco EMS 需要用户名和密码,都必须配置以下 JNDI 属性: |
了解更多 | 请参考 TIBCO 企业版消息服务用户指南,第 9 章:开发 EMS 客户端应用程序> 程序员检查表 |
Sun JMS
SOAtest 和 Virtualize 绑定一个 Sun JNDI 实现,使用 com.sun.jndi.fscontext.RefFSContextFactory 作为 “C:\JNDIRoot
” 或类似内容的初始上下文和用户定义的提供程序(目录),存储目录中的 JNDI 绑定以及本地硬盘上的文件。
在使用 Sun 实现时,必须使用 .binding 文件填充 “C:\JNDIRoot
” 目录,以便 fscontext
可以成功查找 ConnectionFactory 和队列或主题对象。Parasoft 将 SOAtest/Virtualize 安装目录(/examples/jms/JndiFileProviderTest.java)中找到的示例放在一起,该目录创建了 .bings 文件。
其他 JMS 提供程序
针对其他 JMS 提供程序,请参阅有关如何配置 JMS 客户机以与系统通信的供应商指南。