問題タブ [ejb-3.0]

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.

0 投票する
2 に答える
575 参照

java - EJB タイマーと信頼性

何があっても、5 秒ごとにアプリケーション サーバー (Glassfish) で呼び出されるメソッドが必要です。タイマーはこれに対して十分に信頼できますか? 私のオプションは何ですか。

0 投票する
11 に答える
6168 参照

java - Java App Serverのシングルトン..これはどれほど悪い考えですか?

私は現在、アプリケーションサーバーを考慮せずに開発された古いJavaコードに取り組んでいます。これは基本的に、入力インターフェイスと出力インターフェイスを備えた「ブラックボックスコード」の集まりです。「ブラックボックス」クラスのすべては、状態を含む静的データ構造であり、時間間隔(10秒ごと)でアルゴリズムを通過します。ブラックボックスはメインメソッドから開始されます。

これを簡単にするために、「ブラックボックス」をシングルトンにすることを考えています。基本的に、ブラックボックス内のロジックにアクセスしたい人は誰でも同じインスタンスを取得します。これにより、メッセージ駆動型Beanをブラックボックスへの入力として使用し、ある種のJMSパブリッシャーをブラックボックスの出力として使用できるようになります。

これはどれほど悪い考えですか?任意のヒント?

しかし、私が抱えている主な懸念の1つは、「ブラックボックス」コードに私が気付いていないスレッドが含まれている可能性があることです。

EJBに「アプリケーションスコープのオブジェクト」などはありますか?

注:私はGlassfishを使用しています

0 投票する
1 に答える
1830 参照

jpa - REQUIRES_NEW注釈付きメソッドはトランザクションなしで実行されますか?

エンティティをデータベースに永続化するためのステートレスBeanがあります。このステートレスBeanは、メッセージBeanのonMessageメソッドによって呼び出されます。有線のことは、最初のメッセージではすべてが正常に機能しますが、次のメッセージでは、メソッドにREQUIRES_NEWの注釈が付けられていても、永続化を担当するメソッドがトランザクションの外部で呼び出されます。

リフレッシュを呼び出すと、次の例外がトリガーされます。

原因:javax.persistence.TransactionRequiredException:進行中のトランザクションはありません

何か案は?私はJTAにかなり慣れていないので、何か重要なことを見逃した可能性がありますか?

0 投票する
1 に答える
1557 参照

ejb-3.0 - JBoss Seam (EJB3+JSF) による監査ログ

JBoss Seam で書かれた Web アプリケーションの監査ログを実装する必要があります。EntityListeners は良い候補のように思えますが、EntityListeners をアプリケーション セッション コンテキストに接続して、ログイン済みの使用済みプリンシパルを監査レコードに含める方法がわかりません。

この「接続」を行う方法があるかどうか、またはこのプログラミング環境に監査ログを実装するためのより快適でエレガントで効果的な方法があるかどうか疑問に思います。

前もって感謝します。

ラファ。

編集:
Damoの回答に感謝します!ID コンポーネントの注入を試みましたが、うまくいきませんでした。ただし、Component.getInstance() への提案された呼び出しは、EntityListener 内のユーザーの ID への望ましい参照を提供しました。

0 投票する
7 に答える
517 参照

java - Java コードは、アプリケーション サーバーにあるかどうかを判断できますか?

コードが現在 App Server 内にあるか App Server 外にあるかを確認するために、POJO から呼び出すことができるものはありますか?

このようなもの(大まかな擬似コードで):

また

また

0 投票する
2 に答える
2501 参照

java - EJB3 - RollBackException の処理

DB にアクセスするためのいくつかの EJB で構成され、セッション Bean を介して Web サービスとして公開される EJB3 アプリケーションがあります。

今、私が知る必要がある2つのことがあります:

1) Web サービスが SOAP Fault をスローする原因となる SQL 例外を止める方法はありますか? トランザクションはコンテナーによって処理され、現在、SQL 例外によって RollBackException がスローされ、その結果、トランザクションがロールバックされ (望ましい動作)、Web サービスがエラーをスローします (望ましくない)。

2) エンティティのリストを取得できるように Web サービスを拡張し、それぞれを保持するセッション Bean を拡張したいと考えています。ただし、各エンティティを独自のトランザクションで実行して、1 つが失敗しても他のエンティティが影響を受けないようにする必要があります (また、Web サービスが失敗することはありません)。

(1) については、RollBackException をキャッチしようとしましたが、catch ブロックに到達しないため、これは別のスレッドのどこかでスローされると想定しています。(2) については、ユーザー トランザクションを調べる必要があると思いますが、まずコンテナーでこれを管理することを好み、次にユーザー トランザクションの使用を強制する方法がわかりません。

ありがとう。

0 投票する
1 に答える
597 参照

ejb-3.0 - POJOを使用する場合とSLSBを使用する場合

アプリケーションでEJB3を使用しています。私たちの設計の目的は、永続層をビジネス層から分離することです。そこで、SLSBとして使用するXXXbeanクラスと、永続性クラスとして使用するXXXRepositoryクラスを開発しました。また、再利用可能な非ビジネスロジック(国のリストを取得するなど)を実装するPOJOがあり、サービス/ヘルパークラスと呼ばれます。

(Hibernateプロバイダーを使用して)E​​JB3 JPAを使用し、リポジトリクラスにはCRUD操作用のすべてのメソッドとデータアクセス用のgetメソッドがあります。現在、XXXRepositoryクラスはすべてPOJOであり、これらのクラスをBeanXXXClassesまたはサービスObjectsから直接インスタンス化します。

XXXRepositoryクラスはSLSBである必要がありますか?それらをSLSBに変換することの利点と落とし穴は何でしょうか?

0 投票する
2 に答える
11093 参照

java - EJB 3.0 サーバーに対してアプリケーション クライアントを認証する方法

私は J2EE アーキテクチャ全体に非常に慣れていません。誰か助けてくれませんか?

マシン A にログイン、パスワード フィールドを持つ Swing クライアントがあります。

マシン B の JBoss5 に EJB 3.0 があります。

サーバー上にユーザーとロールを含む DB があります (conf/login-conf.xml):

META-INF/jboss.xml:

私が理解しているように、クライアントが適切に認証されるまで、ejb 参照を取得するべきではありません。LoginContext を使用するにはどうすればよいですか? 使用できます@EJB private MyBeanRemote ejbか? そして、どうすれば全体を機能させることができますか?

私は一見些細なことを構築しようとしています:アプリケーションクライアントの承認。私はばかだと感じます。

どうもありがとうございました。

0 投票する
2 に答える
2141 参照

caching - リモート ステートレス セッション Bean 参照を EJB3 にキャッシュできますか?

J2SE アプリケーションからリモート ステートレス セッション Bean を呼び出しており、ルックアップのコストを削減するためにセッション Bean への参照をキャッシュしたいと考えています。これでよろしいですか?

EJB2 では ServiceLocator パターンを使用してリモート リソースへのルックアップをキャッシュするのが一般的でしたが、EJB3 には個別の EJB ホーム (通常はキャッシュされていた) とリモート オブジェクトがありません。

これに対する一般的な答えは、EJB3 インジェクションを使用することですが、J2SE クライアントからリモート EJB サーバーへの呼び出しを行っているため、インジェクションを使用できません。

0 投票する
2 に答える
1202 参照

java - EJB と FLEX

EJB3 -> BlazeDS -> Flex を使用して新しいアプリケーションに取り組んでいます。EJB を BLAZEDS と統合する方法を示す良い例が見つかりません。それらをリンクする方法について、誰かが私にいくつかの指針を教えてもらえますか。