我在使用log4j 1.2.17使Java Web应用程序运行在IBM WebSphere Application Server www.example.com上9.0.5.5并向IBM MQ主题发送消息时遇到了一些困难。
在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
(以及用于IBM MQ客户端www.example.com的fscontext、providerutil、mq等JAR9.1.0.0),因此没有其他可能是旧JMS版本的竞争jms.jar
。
你知道这里出了什么问题吗?
1条答案
按热度按时间uqzxnwby1#
这需要与IBM进行大量的交流才能使其工作。我必须浏览案例历史,但现在我可以在WAS中分享我在JMS配置中看到的内容。
基本上就是这样。现在,我们确实在MQ端遇到了很多问题,没有正确设置权限,IBM能够在我们发送的一些跟踪中识别出这些问题。
我想说,如果您仍然无法解决问题,请向IBM打开一个案例。我们花了一点时间才找到正确的资源,但在运行一些跟踪后,他们能够找到我们的问题。
祝你好运@拉吉卜-比斯瓦斯!