java - Tomcat 4.1.24、slf4j 1.6.4 和 activemq 5.5.1 不兼容

标签 java tomcat log4j activemq slf4j

尝试初始化 Tomcat 上的 servlet 和本地 ActiveMQ 实例之间的 JMS 连接时,我遇到了以下错误。

java.lang.NoSuchMethodError: org.slf4j.helpers.MessageFormatter.format(Ljava/lang/String;Ljava/lang/Object;)Lorg/slf4j/helpers/FormattingTuple;
    at org.slf4j.impl.Log4jLoggerAdapter.warn(Log4jLoggerAdapter.java:420)
    at org.apache.activemq.transport.tcp.TcpTransportFactory.createTransport(TcpTransportFactory.java:132)
    at org.apache.activemq.transport.TransportFactory.doConnect(TransportFactory.java:141)
    at org.apache.activemq.transport.TransportFactory.doConnect(TransportFactory.java:51)
    at org.apache.activemq.transport.TransportFactory.connect(TransportFactory.java:80)
    at org.apache.activemq.ActiveMQConnectionFactory.createTransport(ActiveMQConnectionFactory.java:243)
    at org.apache.activemq.ActiveMQConnectionFactory.createActiveMQConnection(ActiveMQConnectionFactory.java:258)
    at org.apache.activemq.ActiveMQConnectionFactory.createActiveMQConnection(ActiveMQConnectionFactory.java:230)
    at org.apache.activemq.ActiveMQConnectionFactory.createTopicConnection(ActiveMQConnectionFactory.java:208) ...

我相信我所有的依赖项都是有序的。其他线程建议这是不匹配的 slf4j jar 库的问题。这是我的 lib 目录。

root@TestDebS:/usr/local/jakarta-tomcat-4.1.24/webapps/examples/WEB-INF# ls lib/
activemq-all-5.5.1.jar   exolabcore-0.3.5.jar   jndi_1.2.1.jar    openjms-0.7.5.jar    slf4j-api-1.6.4.jar
classes12.zip            exolabcore-0.3.7.jar   log4j-1.2.14.jar  openjms-0.7.6.1.jar  slf4j-log4j12-1.6.4.jar
comm.jar                 javax.comm.properties  log4j-1.2.8.jar   openjms-0.7.6.jar    xercesImpl.jar
commons-logging-api.jar  jms_1.0.2a.jar         servlet.jar

[tomcat root]/common/lib 和 [tomcat root]/shared/lib 都没有什么值得注意的地方。有人有主意吗?提前感谢您提供的任何帮助!

最佳答案

您的 WEB-INF/lib 中有多个库的多个版本;这是一个坏主意,因为它可能导致不同版本的混合和匹配,具体取决于哪些版本包含特定签名。

此外,如果那是 servlet API,则您不得部署自己的 servlet.jar。这导致的错误通常是不明显的。可能无法解决这个问题,但肯定会阻止其他问题的发生。

关于java - Tomcat 4.1.24、slf4j 1.6.4 和 activemq 5.5.1 不兼容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8496199/

相关文章:

java - 无法解决 Android 依赖关系

java - 如何为每个客户创建唯一的文件夹

java - Jasper Report 无法导出为 PDF

java - 在 Apache POI XWPF 中用多个单词替换文本不起作用 - org.apache.xmlbeans.impl.values.XmlValueDisconnectedException

java - 使用 JPanel 在 Java 中绘图

java - Spring MVC : easiest way to see incoming requests

tomcat - 我的 session 怎么会随机为空?

java - 如何配置 J.U.L.在 JUnit 测试期间记录?

log4j - 通过匹配模式过滤日志-log4j

java - 是否可以将 JBOSS AS 7 配置为使用 log4j 而不是其自己的日志框架?