問題タブ [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.
jpa - Java EE 6 + JPA - 例外: メッセージ駆動型 Bean をマネージド Bean にすることはできません
Enterprise Application
CustomerApp
と の2 つのプロジェクトも生成するを作成しCustomerApp-ejb
ますCustomerApp-war
。でCustomerApp-ejb
、以下のように SessionBean 呼び出しを作成しますCustomerSessionBean.java
。
これで問題なくデプロイできCustomerApp-war
ます。しかし、メッセージ駆動型 Bean を作成するとすぐに、デプロイできCustomerApp-war
なくなります。NotificationBean.java
(メッセージ駆動型 Bean)を作成するときは、project destination
オプションで [追加] をクリックNotificationQueue
しDestination Name
、 [Destination Type
キュー] を選択します。以下はコードです
サーバーログは言っMessage Driven Bean cant be managed bean
た. 管理対象の Bean という意味ではありませんでした。私はコードに持っていませんでし@ManagedBean
た????
編集:これがサーバーログです
java - jboss5.1 での seam と mdb の問題
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
java - Weblogic 10.3 MDB が javax.sql.DataSource 例外をスローする
私が使用しているアプリケーションは次のとおりです。
- ウェブロジック 10.3.3
- Websphere MQ 7.0
- Oracle 11g Express Edition (DB)
現在のプロセス フローは次のとおりです。
- メッセージは Weblogic によって Websphere MQ キューから読み取られ、MDB によって処理されます。
- MDB はメッセージを DB に保存します
- MDB はメッセージを別の Websphere MQ キューに書き込みます
これは XA トランザクションであるため、上記のいずれかが失敗した場合、メッセージは元のキューに返されます。
プロセスを開始するために Websphere MQ キューにメッセージを入れると、次のエラーが表示されます。
コードでデータベースに接続する方法は次のとおりです
これまでにトラブルシューティングを行うために、次のことを行いました。
- データソースをチェックして、jndi 名が実際に「datasource/oracle-11g」であることを確認しました
- データソースのセットアップ中に [テスト構成] ボタンを使用してデータベースに正常に接続できました
- メッセージテーブルがデータベースに存在することを確認しました
データベースへの特定の JDBC 接続エラーを確認できるように、ログを有効にする方法はありますか?
java - 貪欲なスレッドがWebLogicでJMSメッセージを取得しすぎています
WebLogic 8.1で、問題が発生しましたが、修正できませんでした。多くの場合、100以上のJMSメッセージをキューに入れます。各メッセージは、作業単位を表します。各メッセージは同じサイズで同じように見えますが、完了するのに数秒しかかからない場合がありますが、次のメッセージは20分間の確実なクランチを表します。
私たちの問題は、これらのメッセージの処理を行っている各メッセージ駆動型Beanが、一度に10個のメッセージを取得しているように見えるスレッドになってしまうことです(WebLogicの最適化として行われているため、小さなメッセージを何度もキューに入れます)。次に、次々とスレッドがすべての小さなジョブを終了し、新しいジョブが入らないため、最大9つの他のアイテムが終了するのを待っているにもかかわらず、1つのスレッドログが長時間実行されている作業に詰まってしまいます。他のスレッドは無料であり、それらの作業単位で開始できるという事実。
これで、WebLogic 10に変換しているところなので、この問題に戻って、次のいずれかを実装できる解決策があるかどうかを確認するのが自然なポイントです。a)各スレッドがで1つのJMSメッセージのみを取得する処理して他のすべてのメッセージを着信キューで待機させたままにする時間、またはb)待機中のメッセージ(特定のスレッドにすでに割り当てられているメッセージも含む)を空きスレッドに自動的に再配布します。何か案は?
java - ActiveMQ メッセージ駆動型 Bean から JSF へ
現在、バックエンドでメッセージ駆動型 Bean (EJB3) を使用して ActiveMQ から読み取りを行っています。私が直面している問題は、メッセージ駆動型 Bean で ActiveMQ からメッセージを受信するとすぐに、JSF ページのテーブルを更新する必要があることです。
私が試すことができる技術の提案は素晴らしいでしょう。現在、プライムフェイスとグラスフィッシュを使用しています。
どうも
unicode - LinuxでJbossTextMessageUnicode変換に失敗しました
xml(UTF-8)ファイルをアップロードしてJbossMQに投稿しようとしています。リスナーからファイルを読み取る場合、UTF-8文字は、Linuxで実行されているJboss(jboss-5.1.0.GA-3)インスタンスでのみ正しくフォーマットされません。
たとえば、BORÅSはLinuxjbossインスタンスでBOR¿Sに変換されます。
同じjbossインスタンスをコピーしてWindows(SP3)で実行するように設定すると、完全に機能します。
また、.bashrcファイルとrun.shファイルにJAVA_OPTS = -Dfile.encoding = UTF-8を含めることで、Linuxのデフォルト設定を変更しました。
リスナー内のJbossTextMessage.getText()には、誤って指定された文字が含まれています。
提案や回避策はありますか?
unit-testing - @Depends で実行すると seam テストが失敗する
@Depends でマークされた MDB が戦争に依存するようになっています。アプリケーションをサーバーにデプロイすると正常に動作しますが、テストを実行しようとするとテストが失敗します...設定が間違っているため継ぎ目があります...これを解決するためのヒントはありますか?埋め込まれたjbossはこれを別の方法で処理していると思いますか?
私が使用する: seam 2.2.1 jboss 5.1 testNG
テストを実行したときのエラー:
jms - Jboss 5.1 ActiveMQ 5 スタンドアロン ブローカー MDB セットアップ
JBoss 5.1 AS にデプロイされた MDB で ActiveMQ 5 に付属するサンプル ブローカーを使用しようとしています。
deploy ディレクトリに activemq rar をデプロイしました。接続ファクトリーを定義する deploy/messaging に activemq-jms-ds.xml をデプロイしました。connectionfactory 構成で定義されているように、localhost:61616 でブローカーを実行しています。
しかし、MDB を jboss にデプロイしようとすると、このエラーが発生します。
メッセージをキューに配置するクライアントを定義したくないので、今のところ標準ブローカーを使用することにしました。サンプル ブローカーに付属の Web コンソールを使用することを好みます。何が問題なのかわからないように見えるので、私が見逃しているものはありますか。
注: ActiveMQ Jboss セットアップ ガイドを試してみましたが、ActiveMQ 4 には古すぎるのではないかと心配しています。
jakarta-ee - メッセージ駆動型Beanの代わりにSessionBeanを使用してみませんか?
メッセージドリブンBeanの代わりにSessionBeanを使用してみませんか?
EJBからリモートメソッドを呼び出すことができるのなら、なぜメッセージ駆動型Bean(セッションBeanよりも開発が難しい)でメッセージを送受信するのが面倒なのですか?
メッセージ駆動型Beanが役立つシナリオはどれですか?
java - OpenEJBで複数のキュー名を持つMDBをデプロイ中にエラーが発生しました
OpenEJB 3.1.3にアップグレードした後、Tomcat/OpenEJBの起動時に次のエラーが発生しました。
次のMDBにより、このエラーが発生します。
に変更した後
エラーはなくなりました。
ご覧のとおり、アノテーションで単一のクラスとコンマ区切りのキュー名を使用して2つのリスナーを定義しています。これは3.1.2で問題なく機能しましたが(少なくともそう見えました)、上記のエラーが発生します(ただし、エラーによってMDBの展開が妨げられることはないようですが、JMXモニタリングは重要です)。
@MessageDriven
複数のキュー(単一のMDBクラス、複数のコンマ区切りのキュー名)を使用した使用法アノテーションの例も見つかりません。これは間違った方法ですか?文書化された機能ですか?JMXがMDBを登録できなくなるように、3.1.3で何が変更されましたか?