私はJMSとActiveMQを使って学校のプロジェクトをしようとしています。JMSとActiveMQの例外
O'Reillyの書籍「Java Message Service 2nd Edition June 2009」のコードブロックをコピーしました。パブリッシュとサブスクライブの方法を使用しています。実際には、話題に接続しているすべての人が誰にでもメッセージを送信でき、誰もが他の人のメッセージを見ることができる小さなチャットです。私はそれを実行しようと、それは私に次の例外を与え、私はプログラムをコンパイルし、すべてがOKです:
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]
私はこの問題は、2つの理由があるかもしれないことが判明:
- ActiveMQに、すべての-5.2.0.jarはクラスパスに追加されません。
しかし、クラスパス(EnvironmentVariables-> ClassPath-> Editを選択し、 "D:\ Programming \ JMS \ ActiveMQ \ apache-activemq-5.2.0"を追加してください。 !) jndi.propertiesファイルが正しく定義されていないか、クラスパスに追加されていない
が、私はそれを作成し、クラスパスには、フォルダの追加ここではそれが含まれているものです:。。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ファイルのパスは重要ですか?それともクラスパスに置かれていて、そこから見つかるだけですか? --------- \ JMS \ ActiveMQの\のapache-ActiveMQの-5.2.0 \ binに
[編集] \ \プログラミング:
は、私はまた、binフォルダのDからactivemq.batを走りました------------ Eclipseでは動作しますが、 環境変数に.jarファイルを正しく追加しました.Windowsのcmdからクライアントを実行しました。
publisher.publish(message);
とは、それは言う:それは私がEclipseのコンソールに書くとき、それはCMDコンソール、[OK]すべてのものに表示されますが、私は、CMDに書き込みしようとすると、それは、この行でエラーを与え、すべてのエラーを与えるものではありません
java.lang.NoSuchMethodError: org.apache.activemq.ActiveMQMessageProducerSupport.getDestination()Ljavax/jms/Destination;
私は本当にCMDでそれを実行できるようにしたいと思います。 :(
--------------------- [/編集]
Hoooooly。これはEclipseで動作します。私は泣いてみたいと思っていますが、これで無駄にしていた時間は分かりませんでした。ありがとうございました – AndreiBogdan
編集で見ることができますか?優れています。:) – AndreiBogdan
@AndreiBogdanは私の更新を見て、まだエラーが発生した場合はさらに詳細を提供します。 – Eugene