我正在尝试使用JMS和ActiveMQ的学校项目。JMS和ActiveMQ异常
我复制了O'Reilly书籍“Java Message Service 2nd Edition 2009年6月”中的代码块。它使用发布和订阅方法,实际上是一个小聊天,每个与该主题相关的人都可以将消息发送给每个人,每个人都可以看到其他人的消息。我编译程序,一切都很好,我尝试运行它,它给了我以下异常:
Exception in thread "main" javax.naming.NoInitialContextException: Cannot instantiate class: org.apache.activemq.jndi.ActiveMQInitialContextFactory [Root exception is java.lang.ClassNotFoundException: org.apache.activemq.jndi.ActiveMQInitialContextFactory]
我发现,这个问题可能是因为两个原因:
- ActiveMQ的,所有-5.2.0.jar不会添加到类路径中。
但它添加了类路径(EnvironmentVariables->选择ClassPath->编辑并添加以下内容:“D:\ Programming \ JMS \ ActiveMQ \ apache-activemq-5.2.0”(这是如何添加它没有?!? !) jndi.properties文件没有正确定义或尚未添加到classpath
但我创造了它,并增加它的文件夹添加到类路径下面是它包含:。java.naming.factory.initial = org.apache.activemq.jndi.ActiveMQInitialContextFactory java.naming.provider.url = tcp://localhost:61616 java.naming.security.principal=system java.naming.security.credentials=manager connectionFactoryNames = TopicCF topic.topic1 = jms.topic1
什么问题?我已经尝试了很长时间,使其工作。我做错了什么?(
jndi.properties文件路径是否重要?或者它只需放在classpath中,从这里就可以找到它?
我也跑bin文件夹d的activemq.bat:\程序\ JMS \ ActiveMQ的\ Apache的ActiveMQ的-5.2.0 \ BIN \
[编辑] --------- ------------ 所以它在Eclipse中工作,但是 现在我已经在环境变量中正确添加了.jar文件,并且我已经从Windows的cmd中运行客户端。它不给任何错误,当我在Eclipse的控制台写,它出现在CMD控制台,一切就OK了,但是当我尝试在cmd中把它写在该行给出了一个错误:
publisher.publish(message);
,它说
java.lang.NoSuchMethodError: org.apache.activemq.ActiveMQMessageProducerSupport.getDestination()Ljavax/jms/Destination;
任何想法?我真的很想能够在CMD中运行它。 :(
--------------------- [/编辑]
Hoooooly废话。它在Eclipse中工作。最后:((这让我想哭,你不知道我浪费了多少时间,非常感谢。) – AndreiBogdan 2012-02-06 19:31:43
你可以看看Edit吗?如果你能再帮助我一次优秀:) :) – AndreiBogdan 2012-02-06 19:49:07
@AndreiBogdan看到我的更新,并提供更多的细节,如果你仍然有错误。 – Eugene 2012-02-07 08:46:46