0

私はWebSphere7でBaby'sFirstMDBを書いている、または書き込もうとしています。動作させるためにすべてを引き出したので、髪の毛がほとんど残っていません。すべてが正しく設定されているように見えますが、関連するキューにメッセージを入れても応答がありません。

EARファイルの設定は次のとおりです。

simplemdb.ear
    META-INF
        Manifest.mf
        application.xml
    simplemdb.jar
        META-INF
            Manifest.mf
            ejb-jar.xml
        com
            [ classes go here ]

ejb-jar.xmlでキューのJNDI名を定義するための構文が見つからないため、代わりに次のようにします。

  • WebSphereアクティベーション仕様を定義します。名前SimpleMDBActivationSpec、JNDI名jms / SimpleActivationSpec、宛先jms/SimpleMDBQueue。
  • WebSphereキューを定義します。名前SimpleMDBQueue、JNDI名jms / SimpleMDBQueue、キュー名SIMPLE.MDB.QUEUE。
  • MQキューを定義し、SIMPLE.MDB.QUEUEという名前を付けます。
  • EARファイルをデプロイします。展開中に、バインディング情報を入力するように求められます。[アクティベーション仕様]を選択し、ターゲットリソースのJNDI名と宛先JNDI名をそれぞれアクティベーション仕様とキューにポイントします。

(MDBコードには注釈がありません。)この時点で、アプリはスペックとキューを指し、スペックはキュー(ベルトとサスペンダー)を指します。当然、アプリはキューを認識していると思います。希望に満ちて、私はメッセージをキューに入れました、そして...何も。onMessageイベントは、System.outを使用してメッセージをログに記録することになっています。メッセージが表示されません。

これに関する明確な文書は、その欠如によって目立ちます。グーグルはたくさんの結果を出します、しかしそれらのどれも構成がすべて一緒にどのように合うかを詳述しません。ibm-ejb-jar-bnd.xmiについては多くの手がかりがありますが、ファイルの例は難解で、生成方法や構成の他の部分との関係についての説明がない不透明な数字でいっぱいです。

善のために。私がやりたいのは、MDBをデプロイし、メッセージをキューに入れるときに「Hello、world」と書き込むことだけです。開発およびビルドツールとしてviとantを使用しています。誰かが私が欠けているものについて私にアイデアを与えることができますか?

編集:「zos」タグが追加されました。

4

2 に答える 2

1

問題を見つけました。これは、z/OSで実行されているWebSphereに固有です。その環境でアクティベーション仕様を完全に利用できるようにするには、Control Region Adjunct(CRA)プロセスを開始する必要があります。私はWASにそれを起動し、アプリサーバーをリサイクルするように言いました。MDBが応答し始めました。

WebSphere Admin Consoleを介してCRAを開始するには、...に移動します。

  • アプリケーション・サーバー>[サーバー名]>通信>メッセージング>WebSphereMQCRA設定

...そして「CRAを開始する」というチェックボックスをオンにします。[OK]をクリックしてマスター構成に保存し、CRAを実際に開始するには、アプリサーバーを停止してからバックアップします。(これはWAS 7.0用です。)

時間と思考空間を提供してくれた皆さんに感謝します。

于 2011-06-03T22:16:43.843 に答える
0

これをざっと見て、あなたを助ける何かがここにあるかどうか見てください。

http://publib.boulder.ibm.com/infocenter/ieduasst/v1r1m0/topic/com.ibm.iea.wasfpejb/wasfpejb/6.1/DevelopmentTools/WASv61_EJB3FP_MDBLab.pdf

私は過去1年間これで遊んでいなかったので、すぐにコメントすることはできませんが、PDFはあなたの助けになるかもしれないと思いました。

HTH

マングル

于 2011-06-02T00:51:08.350 に答える