2017-04-20 88 views
-1

我試圖用一個簡單的RabbitMQ例子,它給了我:的RabbitMQ - 例外在線程「主要」 java.lang.NoClassDefFoundError:組織/ SLF4J /的LoggerFactory

"Exception in thread "main" java.lang.NoClassDefFoundError: org/slf4j/LoggerFactory".

我有AMQP的客戶端4.0 .jar,slf4j-1.7.25.zip,slf4j-jdk14.jar.zip和我的Build Path上的log4j-1.2.15.jar。

我的代碼是非常基本的,我嘗試了很多關於simillar事務的建議,我改變了不同類型的slfj,但它仍然沒有工作。

ConnectionFactory factory = new ConnectionFactory(); 
factory.setHost(HOST); 
factory.setUsername(USER); 
factory.setPassword(TOKEN); 
factory.setVirtualHost(VHOST); 
Connection connection = factory.newConnection(); 
Channel channel = connection.createChannel(); 

String message = "Test!"; 
channel.basicPublish(EXCHANGE_NAME, QUEUE_NAME, null,    message.getBytes()); 
System.out.println(" [x] Sent '" + message + "' with id="); 

channel.close(); 
connection.close(); 

完整的錯誤:

Exception in thread "main" java.lang.NoClassDefFoundError:  org/slf4j/LoggerFactory 
at com.rabbitmq.client.impl.AMQConnection.<clinit>(AMQConnection.java:49) 
at com.rabbitmq.client.ConnectionFactory.<init>(ConnectionFactory.java:91) 
at ro.test.RMQ_Send_LocalHost.main(RMQ_Send_LocalHost.java:20) 
Caused by: java.lang.ClassNotFoundException: org.slf4j.LoggerFactory 
at java.net.URLClassLoader.findClass(URLClassLoader.java:381) 
at java.lang.ClassLoader.loadClass(ClassLoader.java:424) 
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331) 
at java.lang.ClassLoader.loadClass(ClassLoader.java:357) 
... 3 more" 

回答

0

嘗試添加SLF4J的API依賴於你的應用程序:

https://mvnrepository.com/artifact/org.slf4j/slf4j-api

+0

謝謝你的建議,但不是一個Maven項目。 –

+0

答案保持不變,您可以下載JAR文件並將其包含在您的項目中,而無需使用maven。 –

+0

嗯,它實際上工作,這意味着它給出了其他錯誤。那將是:SLF4J:找不到SLF4J供應商。 SLF4J:默認爲無操作(NOP)記錄器實現 SLF4J:有關詳細信息,請參閱http://www.slf4j.org/codes.html#noProviders。 線程「main」中的異常java.net.ConnectException:連接被拒絕:連接。我甚至只留下了你發給我的jar,並刪除了其他的jar,就像它在鏈接上說的那樣,它給了我同樣的錯誤。 –

相關問題