在尝试初始化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.jartomcat root/common/lib和tomcat root/shared/lib都没有什么值得注意的地方。有谁有什么想法吗?提前感谢您所能提供的任何帮助!
发布于 2011-12-15 00:35:56
您的WEB-INF/lib中有多个库的多个版本;这不是一个好主意,因为它可能导致不同版本的混合和匹配,具体取决于包含特定签名的版本。
此外,如果是servlet API,则不能部署自己的servlet.jar。这导致的错误通常不明显。也许不能解决这个问题,但它肯定会阻止其他问题的发生。
https://stackoverflow.com/questions/8496199
复制相似问题