1

現在、いくつかのJMSMessageListenerを含むJBoss6.1にアプリをデプロイしようとしています。MessageListenersはJNDI(Springを使用して)を介して接続ファクトリを取得します。私は。HornetQという名前のデフォルトの接続ファクトリを使用していますConnectionFactory。私は現在、次で始まるデフォルトJMS Queuesを使用しています:とJBossDLQExpiryQueue

アプリ経由でデプロイするとJMX、問題なく起動できます。

アプリをデプロイディレクトリにコピーしてデプロイし、サーバーを起動すると、アプリが起動に失敗し、次のエラーメッセージが表示されますjavax.naming.NameNotFoundException: ConnectionFactory not bound。これは、アプリが起動する前にHornetQ起動していて、を介して利用できることを意味しますJNDI

を使用して依存関係を作成することを検討しましたが、jboss-dependency.xmlこれを機能させることができず、これが正しいアプローチであるかどうかもわかりません。

HornetQアプリの前に起動することを確認するにはどうすればよいですか?

4

1 に答える 1

5

昨日この問題が発生しました。この問題は、JBossがConnectionFactoryとキューを登録する前にアプリケーションを起動したことが原因です。

アプリケーションがEclipseから完全にデプロイされ、JBossが起動してからデプロイされるまで待機していることがわかりました。

解決策は、 Beanserver/{node}/deploy/jbossweb.sar/META-INF/jboss-beans.xml内に以下を追加してファイルを変更することです。WebServer

<depends>org.hornetq:module=JMS,name="NettyConnectionFactory",type=ConnectionFactory</depends>
<depends>org.hornetq:module=JMS,name="InVMConnectionFactory",type=ConnectionFactory</depends>  
<depends>org.hornetq:module=JMS,name="NettyThroughputConnectionFactory",type=ConnectionFactory</depends>

これは私のために働き、私はここで解決策を見つけました:http: //edemmorny.com/2011/10/17/jboss-as-6-startup-connectionfactory-not-bound/

于 2012-09-05T09:57:32.767 に答える