log4j:java.lang.ClassCastException:com.ibm.ejs.jms.JMSTopicConnectionFactoryHandle 与 WebSphere 9 上的 javax.jms.TopicConnectionFactory 不兼容

问题描述

我在使用 log4j 1.2.17 将消息发送到 IBM MQ 主题的 IBM WebSphere Application Server 9.0.5.5 上运行时遇到了一些困难。

在 WAS 中,我们最初设置了一个 ConnectionFactory 用于与主题进行通信。这就是我们对使用 IBM MQ 队列的其他应用程序所做的。但是,这最终给了我以下错误

java.lang.classCastException: com.ibm.ejs.jms.JMSConnectionFactoryHandle incompatible with javax.jms.TopicConnectionFactory

我发现了一篇 IBM 文章,该文章讨论了队列的类似问题,解决方案是使用 QueueConnectionFactory。因此,类似地,我从使用 ConnectionFactory 切换到 TopicConnectionFactory。现在我收到此错误

java.lang.classCastException: com.ibm.ejs.jms.JMSTopicConnectionFactoryHandle incompatible with javax.jms.TopicConnectionFactory

我有一个 Java Web 应用程序,它使用带有队列的 log4j2。我们在资源 > JMS 中的 WAS 中设置了一个 ConnectionFactory,就像我们在此应用程序中所做的那样。一切正常。这里唯一的区别是我们使用的是 log4j 1.2.17 和主题而不是队列。

我无法更改 log4j 的版本,因为它已融入我们拥有的供应商平台。

我检查了正在部署的 WAR 文件,其中只有一个 jms.jar(以及 fscontext、providerutil、mq 等 IBM MQ Client 9.1.0.0 的 JAR)。因此,没有其他可能属于旧 JMS 版本的竞争 jms.jar

知道这里可能有什么问题吗?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...