問題タブ [message-driven-bean]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
jakarta-ee - 1 つの MessageDriven Bean の複数インスタンスの作成
2 つの異なるアプリケーションで MessageDriven Bean を使用していますが、それらを別々のキューを使用して別々のインスタンスにしたいと考えています。
この SO の質問は、展開記述子 (ejb-jar.xml? glassfish-ejb-jar.xml?) でこれを設定できるはずであるという私の考えを確認しました。おそらくmappedName
、MDB のアノテーションでオーバーライドするだけで十分でしょうか?
誰かがGlassfishでこれを行う方法の良い例を教えてくれたらありがたいです(または、ここで混乱している場合は問題を明確にしてください).
アップデート:
明確にするために、呼び出される MDB と呼び出されるAnalyzerBean
リソースがありますAnalyzerHelper
(前者はキューから読み取り、後者はキューに書き込みます)。属性に対応し<ejb-ref-name>
、属性に対応すると仮定するのは正しいですか?name
<jndi-name>
mappedName
私のglassfish-ejb-jar.xmlは今このようになっています。リソースと MDB に一意の JNDI 名を付けようとしていますが、エラーが発生し続けます。
java - メッセージ駆動型 Bean および Web サービスを使用した Java EE アプリケーションの機能テスト用ツール
JMS と JAX-WS だけで世界と通信する完全なシステムをテストする必要があります。流れは、多かれ少なかれ、次のとおりです。
- 単一の JMS メッセージによってトリガーされ、
- (JMS または Web サービスを介して) 他のいくつかの外部システムにクエリを実行します。
- キューで回答をリッスンします (1 つの要求に対して多くの応答が予想される場合があります)。
- 必要なものを処理し、応答を (JMS 経由で) 呼び出し元のシステムに送り返します (1 つのトリガー メッセージごとに 1 つ以上の応答も)。
次のことができるツールを探していました。
- 外部システムをモックします (つまり、キューの反対側でリッスンし、リクエストを分析し、リクエストの内容に基づいて応答します)。
- さまざまなメッセージ ブローカーに接続します。Active MQ と Websphere MQ が最も求められています。
- テスト ケース ロジックを作成し、
- 結果を予想される動作と比較します。
これまでのところ近いのは jMeter だけです。キューをリッスンする機能だけが欠けています。他のアイデアはありますか?無料または商用の場合があります。
最終的には、一連のメッセージ駆動型 Bean をモックとしてデプロイする必要があるように思えますが、車輪を再発明しないようにしたいと考えています。
java - AOP (ejb3-interceptors-aop.xml) を使用して MDB でアノテーションをオーバーライドしながら文字列を追加する方法は?
ファイル ejb3-interceptors-aop.xml を使用して、(Jboss にデプロイされた) MDB の注釈をオーバーライドしようとしています。
注釈の形式は次のとおりです。
ただし、これを XML ファイルで次のように使用する場合:
これは字句エラーをスローします: Encountered: "+" , after : ""
どうすればこれを回避できますか?
jboss - MDBトランザクションの再試行間隔
MDBでトランザクションの再試行間隔を制御できますか?その場合は、例を提供するか、ドキュメントを参照してください。MDBトランザクションに3分の時間間隔を設定します。クエリが最初に失敗した場合、3分が経過した後に再試行することが望まれます。
jms - JavaEE 6:スタンドアロンJMSクライアントにJMSリソースを注入する方法は?
javax.jms.ConnectionFactory
スタンドアロンのJMSクライアントに挿入できません。私は以下のコードjava.lang.NullPointerException
でatを取得します。connectionFactory.createConnection()
JmsClient.java
Glassfish 3.1管理コンソールを使用して、 Open MQ (MoM)で対応する接続ファクトリと宛先リソースを作成しました。
誰かが私が欠けているものを理解するのを手伝ってもらえますか?
java - JBossEAP5.1で特定のMDBに対してmaxSessionプロパティを設定可能にする
MDBのmaxSession値をユーザー構成可能にする方法は?
特定のキューからのメッセージをリッスンするMDBがあります。注釈として定義されます。
@ActivationConfigProperty(propertyName = "maxSession", propertyValue = "5")
。
maxSessionの値を変更するには、コードを毎回コンパイルする必要があります。
ビルドが不要で、jbossを再起動せずにユーザーが設定できるようにする方法はありますか?
親切に助けてください。
ejb - メッセージがMDBに再配信されるのを停止します
次のシナリオを検討してください。
メッセージを受信するMDBがあります。このメッセージを受信すると、一連の操作がトリガーされます。一部の呼び出しは、トランザクション属性としてRequires_Newを持つEJBで分離され、すべて成功します。トランザクションの最後に、sessionContext.setRollbackOnly()を呼び出します。
これにより、メッセージがMDBに再配信されますか?
jms - JMS/MDB ロールバック
JMS を読み取り、いくつかのデータベース トランザクションをすべて 1 つの XA トランザクションの一部として実行するアプリケーションがあります。メッセージをもう一度読んでもらいます (ロールバックが以前に開始された場合、MDB がプロセス全体をもう一度トリガーすることは望ましくありません)。
session - SessionContextRollBackOnlyとMDB
トランザクションでメッセージを受信し、EJBのthis.sessionContext.setRollbackOnly()のいずれかを呼び出すと複数のEJB呼び出しを行うMDBがあると、JMSメッセージの再配信がトリガーされますか?
すべてのEJBメソッドは、Requires_Newトランザクション属性でマークされています。
java - JUnit (OpenEJB) で自動応答 JMS リスナーを構築する方法
メッセージを JMS キューに送信し、そこからの応答を待つ EJB があります。EJB をテストしたいのですが、OpenEJB を使用して EJB の JUnit テストを行うのは簡単です。しかし問題は、この EJB が JMS 応答を待って処理を続行することです。
junit コードでメッセージを送信することはできますが、EJB がまだ進行中であるため、EJB が完了する前にメッセージを実行することはできません。
2 番目の解決策は、MDB を初期化して EJB からの JMS メッセージをリッスンして返信できるようにすることですが、問題は MDB が src\main\java にある必要があり、src\test\java にあることができないことです。問題は、これは単なるテスト コードであり、運用環境にパッケージ化するべきではないということです。(Mavenを使用しています)
それともモックオブジェクトを使うべきですか?