【问题标题】:Standalone Java JMS app not connecting to WebSphere MQ独立 Java JMS 应用程序未连接到 WebSphere MQ
【发布时间】:2014-07-05 05:24:56
【问题描述】:

我编写了一个测试应用程序,用于使用 JMS 在 Apache ActiveMQ 上发送和接收消息。它只是一个测试应用程序,所以我将初始上下文工厂和提供程序 url 硬编码到 Properties 对象中,然后将其放入初始上下文中:

Properties properties = new Properties();
properties.setProperty(Context.INITIAL_CONTEXT_FACTORY, "org.apache.activemq.jndi.ActiveMQInitialContextFactory");
properties.setProperty(Context.PROVIDER_URL, providerUrl);
InitialContext jndiContext = new InitialContext(properties);

它奏效了。

完成之后,我现在需要将其转换为使用 WebSphere MQ。我没有对 WebSphere MQ 服务器的本地访问权限,因为我需要将它移植到第三方机器上,所以我有点盲目地让它在本地运行。

我认为如果我下载了客户端并将 jars 包含在类路径中,更改了初始上下文工厂和提供程序 url 值,那么应用程序将运行,但无法连接:

Properties properties = new Properties();
properties.setProperty(Context.INITIAL_CONTEXT_FACTORY, "com.ibm.websphere.naming.WsnInitialContextFactory");
properties.setProperty(Context.PROVIDER_URL, providerUrl);
InitialContext jndiContext = new InitialContext(properties);

但事实并非如此。我得到一个命名异常:

“无法实例化类:com.ibm.websphere.naming.WsnInitialContextFactory”

我还尝试了“com.ibm.mq.jms.context.WMQInitialContextFactory”,结果相同。

我想知道让它运行的魔法字符串,或者如果需要更根本的改变,我需要做的一个例子。谢谢。

【问题讨论】:

标签: java jms ibm-mq


【解决方案1】:

当您真正需要 MQ 服务器时,为什么要下载 MQ 客户端?卸载它,去下载 WebSphere MQ Advanced:https://www.ibm.com/developerworks/community/blogs/messaging/entry/develop_on_websphere_mq_advanced_at_no_charge?lang=en

不要尝试将 Apache MQ 代码与 WebSphere MQ 一起使用。

其次,网络上有数百个 JMS/MQ 示例。这是一个列表:http://www.capitalware.com/mq_code_java.html#jmscode

【讨论】:

    猜你喜欢
    • 2011-09-11
    • 2015-07-08
    • 2017-02-03
    • 2014-05-08
    • 2020-03-13
    • 2012-03-10
    • 2012-02-13
    • 1970-01-01
    • 2010-11-24
    相关资源
    最近更新 更多