使用 JNDI 在 Tomcat 上设置 WMQ V8 连接工厂

2024-04-25

目前,我们的 Tomcat 配置 JNDI 是基于当前有效的此建议。

如何使用 JMS 和 JNDI 连接到 Websphere MQ(MQ 系列)服务器? http://wiki.apache.org/tomcat/HowTo#How_do_I_connect_to_a_Websphere_MQ_.28MQ_Series.29_server_using_JMS_and_JNDI.3F

由于我们要升级到 v8,我想利用 JMS 2.0 功能。这需要将 jar 文件更新到 JMS 2.0 版本。

所以我从 tomcat lib 文件夹中删除了以下 jar。

  • com.ibm.mq.jar
  • com.ibm.mqjms.jar
  • 连接器.jar
  • dhbcore.jar
  • geronimo-j2ee-management_1.0_spec-1.0.jar
  • geronimo-jms_1.1_spec-1.0.jar

并用这些罐子代替它们。以此为基础link http://www-01.ibm.com/support/knowledgecenter/SSFKSJ_8.0.0/com.ibm.mq.dev.doc/q030590_.htm

  • com.ibm.mq.allclient.jar
  • com.ibm.mq.traceControl.jar

我的 JNDI 配置与此配置匹配。

<Resource
      name="jms/MyQCF"
      auth="Container"
      type="com.ibm.mq.jms.MQQueueConnectionFactory"
      factory="com.ibm.mq.jms.MQQueueConnectionFactoryFactory"
      description="JMS Queue Connection Factory for sending messages"
      HOST="<mymqserver>"
      PORT="1414"
      CHAN="<mychannel>"
      TRAN="1"
      QMGR="<myqueuemanager>"/>

现在,使用更新的 jar 文件,我遇到了以下异常。

Caused by: java.lang.NoClassDefFoundError: javax/jms/JMSRuntimeException
    at com.ibm.mq.jms.MQQueueConnectionFactoryFactory.getObjectInstance(MQQueueConnectionFactoryFactory.java:69)
    at org.apache.naming.factory.ResourceFactory.getObjectInstance(ResourceFactory.java:141)
    at javax.naming.spi.NamingManager.getObjectInstance(NamingManager.java:321)
    at org.apache.naming.NamingContext.lookup(NamingContext.java:842)
    at org.apache.naming.NamingContext.lookup(NamingContext.java:153)
    at org.apache.naming.NamingContextBindingsEnumeration.nextElementInternal(NamingContextBindingsEnumeration.java:117)
    at org.apache.naming.NamingContextBindingsEnumeration.next(NamingContextBindingsEnumeration.java:71)
    at org.apache.naming.NamingContextBindingsEnumeration.next(NamingContextBindingsEnumeration.java:34)
    at org.apache.catalina.mbeans.GlobalResourcesLifecycleListener.createMBeans(GlobalResourcesLifecycleListener.java:138)
    at org.apache.catalina.mbeans.GlobalResourcesLifecycleListener.createMBeans(GlobalResourcesLifecycleListener.java:110)
    at org.apache.catalina.mbeans.GlobalResourcesLifecycleListener.lifecycleEvent(GlobalResourcesLifecycleListener.java:82)
    at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:117)
    at org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:90)
    at org.apache.catalina.util.LifecycleBase.setStateInternal(LifecycleBase.java:402)
    at org.apache.catalina.util.LifecycleBase.setState(LifecycleBase.java:347)
    at org.apache.catalina.core.StandardServer.startInternal(StandardServer.java:724)
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
    ... 7 more

问题:

我应该将另一个 jar 文件包含到类路径中吗?

或者 v8 的 JNDI 配置是否发生了变化?


请这样做NOT尝试添加在 MQ 安装中找到的 JMS Jar。 IBM 自 v8.0 起重新打包了 JMS,因此现在支持 jar 文件的独立安装。但前提是您使用完整且完整的罐子组,并且不要随心所欲地混合搭配它们。这样做是鲁莽且不明智的。

你走在正确的轨道上,但为了你的目的,我会去抓取文件。然后我会去解释安装过程的技术说明 http://www-01.ibm.com/support/docview.wss?uid=swg21683398并尝试一下。

我确信 IBM 有一个从服务器安装中获取 jar 的流程,但是由于这些包的打包方式似乎有所不同,所以我会把钱花在为独立交付而设计和测试的包上 - 例如我上面链接的那个。

顺便说一句,由于现在支持此功能,如果它不起作用,您可以打开 PMR,告诉 IBM 您严格按照他们的说明进行操作,并让他们与您一起修复它。 (然后在这里发布修复它的内容。)但如果你只是随机抓取 jar 文件并希望它能起作用,他们就不会这样做。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 JNDI 在 Tomcat 上设置 WMQ V8 连接工厂 的相关文章

  • 通过 .net 客户端通过 SSL 连接到 IBM MQ

    我正在尝试通过 NET 客户端连接到 MQ 服务器队列 我需要使用证书进行安全通信 这是我的代码 MQEnvironment SSLKeyRepository SYSTEM MQEnvironment ConnectionName conn
  • 收到错误:WebSphere MQ 原因代码 2538?

    我在 Linux 上安装了 WebSphere MQ 和 WebSphere Message Broker 当我执行mqsicreateexecutiongroup我收到一条错误消息 BIP1046E 无法连接到队列管理器 无法连接到队列管
  • 当我们手动将tomcat作为Windows服务运行时,如何更改tomcat的java_opts?

    我在控制台上手动运行 tomcat 6 作为 Windows 服务 我需要在启动之前更改 java opts 我怎么做 另外 有没有办法可以动态查看日志 我知道这是一个旧线程 但需要纠正一些假设 仅供参考 当将 tomcat 作为服务运行时
  • 带有多个 webapp 的 tomcat ajp 连接器

    我有一个 tomcat 服务器 带有 webapps ROOT 应用程序 以 Apache 为前端 LoadModule proxy ajp module modules mod proxy ajp so and ProxyPass ajp
  • Tomcat 集群环境中的 JDBC 连接池

    我对此相对很陌生 但我设置了一个 Tomcat 集群 使用mod proxy来自httpd 和会话复制 单独的redis服务器 以实现容错 我对这个设置有几个问题 我的应用程序 spring hibernate 每个用户都有不同的数据库 所
  • Tomcat下无法运行PHP脚本

    我正在使用 Tomcat 6 我已经安装了 PHP 并尝试使用 PHP JavaBridge 在 Tomcat 中运行 PHP 我已在 Tomcat 的 webapps 目录中部署了 JavaBridge war 当运行任何 PHP 脚本时
  • Spring mvc使用AJAX一次上传多个文件不起作用

    我正在使用 Spring boot 2 0 1 我正在尝试使用 dropzone 上传多个文件 当我使用时一切都工作正常uploadMultiple false on Dropzone js 当我设置uploadMultiple true
  • Tomcat 上的 Grails - 如何记录原始 HTTP 请求/响应

    我找不到配置我的虚拟教程 Grails 应用程序来记录 Grails 服务器 实际上是 Tomcat 接受 生成的所有 HTTP 请求和响应的方法 这可能吗 另一种选择是使用 tomcat 的内置访问日志记录 http tomcat apa
  • 来自远程客户端的 websphere jms 队列访问

    背景我是 php 和前端 Web 开发人员 使用 Netbeans 开发 Java 应用程序 从 websphere 我认为是 V8 5 JMS 队列中读取数据 然后向适当的脚本 服务器发出命令 这是我大约 10 年来第一次主要接触 Jav
  • 如何发出 JMS 同步请求

    我有一个 Web 应用程序 预计将从外部应用程序获取和显示数据 该外部应用程序只能通过消息传递 JMS 访问 因此 如果用户在浏览器上提交请求 则同一 HTTP 请求线程将必须与消息系统 MQ 系列 交互 以便同一请求线程可以显示从消息系统
  • 持久订阅 ActiveMQ

    我正在尝试为我的消息设置持久订阅者 以便即使在服务器重新启动后它们也能保留在主题中 但在配置过程中我收到与 xml 相关的错误 这是我的配置 xml
  • 如何在反向代理后面正确设置 JSESSIONID cookie 路径

    我的网络应用程序正在 Tomcat 中运行http localhost 8080 example com 但它是从 Apache 提供的反向代理http example com 在端口 80 上 我的网络应用程序查看request getH
  • 如何限制 Glassfish v3 上 MDB 池的大小

    我的消息驱动 Bean 执行高度密集的操作 因此我想限制它的池大小 否则我的服务器会过载 我已经尝试过这个 代码 但它不起作用 它的池仍然是32 根据经验测试 我不时重新启动服务器 因此没有池实例 MessageDriven mappedN
  • Eclipse 和 Tomcat

    我正在尝试将 eclipse 与 tomcat 集成 我的系统是 Debian Lenny 我已经安装了 tomcathttp tomcat apache org http tomcat apache org 我的问题是 当从 eclips
  • WAR 文件在 Tomcat 服务器中抛出 OutOfMemoryError

    我有一个 Spring MVC WAR 文件 可以在我的本地计算机 程序和网站 中完美运行 一旦我将文件上传到服务器 aTomcat 7 并尝试访问它 catalina 日志文件表明java lang OutOfMemoryError 我尝
  • 为什么 com.ibm.jms.JMSTextMessage 类型的变量会打印截断的内容和省略号 (...)?

    我想了解为什么 com ibm jms JMSTextMessage 类型的变量在转换为字符串时会打印出截断的内容和省略号 我在 JMeter 的 JSR223 Sampler 中有以下代码 import com ibm msg clien
  • 将 JSTL 添加到 jsp (Tomcat 8) [重复]

    这个问题在这里已经有答案了 我想在我的 jsp 中使用 JSTL 库 现在我按照教程进行操作 它告诉我将此行添加到 jsp 页面 它给我错误无法解析 taglib 与 uri 然后是 URL 我正在运行 tomcat 8 我的 web xm
  • 如何在 Eclipse 中使用 Tomcat 8.5.x 和 TomEE 7.x?

    我需要设置一个 Tomcat8 5 xEclipse 中的服务器版本 当我尝试使用 Eclipse GUI 创建服务器时 我进入 Eclipse Luna 作为选择最新版本 阿帕奇汤姆猫 v8 0当我选择它并浏览到我的 Tomcat 8 5
  • ActiveMQ 的 @SendTo 注释无提示地失败

    我试图使用 SendTo 注释将 JMS 消息推送到 SpringBoot 应用程序中的独立 ActiveMQ 代理 但是执行完成时没有错误 异常 但消息未排队 相反 如果我使用 JmsTemplate 在代码中注释 消息将排队 使用 Se
  • Ajax jquery 调用响应中出现 NetworkError: 403 Forbidden 错误

    我使用 apache tomcat 作为 Web 服务器 我已经在tomcat上部署了web服务 如果我通过 jquery ajax 从本地文件系统向 tomcat webservice 发布请求作为响应 我会收到 403 错误 如果我从同

随机推荐