mdb を seam コンポーネントとして使用するときに問題が発生します。Bean には、他のシーム成分を注入します。
問題は、サーバーがクラッシュ後に再起動し、mdb が展開されると、メッセージの読み取りを開始しますが、シームがまだ初期化されておらず、例外が発生することです (上記にリストされています)。キューが空の状態でサーバーを起動し、サーバーの起動後にメッセージをキューに送信すると、問題なく動作します。
サーバーの起動時にメッセージの送信を停止または遅延させ、seam が完全に機能している場合にのみメッセージの送信を開始する可能性はありますか?
Bean で @Depends antotatin を試しましたが、成功しませんでした
私の環境: jboss5.1 GA シーム 2.2.0 GA jboss メッセージング 1.4
どんな助けでも大歓迎です
起動時のエラー:
11:24:20,477 ERROR [TxPolicy] javax.ejb.EJBTransactionRolledbackException: java.lang.IllegalStateException: 初期化されたアプリケーションの外部で Seam コンポーネントを呼び出そうとしました
11:24:30,483 ERROR [TxPolicy] javax.ejb.EJBException: プールセマフォの取得に失敗しました, strictTimeout=10000