問題タブ [ejb-3.1]

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 投票する
4 に答える
24603 参照

java - EJB 3.1@EJBPOJOへの注入

新しいEJB3.1仕様では、EJBをpojoに注入することは可能ですか?EJB 3.0では、@ EJBアノテーションを使用してEJBを挿入できることは知っていますが、これは単純なpojoでは機能しませんでした。

そうでない場合は、新しいキーワードを単純に使用することはできないことを知っているので、JNDIでBeanを検索する必要があります。

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

java - JavaEEDependsOnローカルEJB

@Singleton次のように定義されたEJBを持つEJBプロジェクトがあります。

次に、別のEJBを持つ別のEJBプロジェクトがあります。

ただし、@DependsOnは機能していません。さまざまな値を試しました@DependsOnが、成功しませんでした。サーバーは次のコマンドで起動できません。

モジュールのデプロイメントエラー:Atlas:アプリのデプロイ中に例外が発生しました:java.lang.RuntimeException:EJBOutboundRoutingのDependsOn依存関係'DataModelBeanLocal'が無効です%%%EOL %%%

ここで何をすべきかわかりませんが、何か提案はありますか?

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

java - GlassfishがSingleton Beanを2回初期化する

シングルトン ejb が 2 回初期化されています。理由はわかりませんが、私が知る限り、シングルトン Bean を持つことのポイントを完全に擁護しています。どんな助けでも大歓迎です。ご覧のとおり、複数の初期化を防ぐために静的ブール値を入れようとしましたが(必須ではありません)、違いはありませんでした。

豆:

ログ出力スニペット:

2豆を作っているのか!! それとも、アプリを 2 回デプロイしていますか?

余談ですが、私はglassfish v3を使用していますが、これは十分に成熟していますか? v2 か何か他のものを使用する必要がありますか? 考え?

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

java - ステートレスおよびステートフルエンタープライズJavaBeans

Java EE 6チュートリアルを実行していて、ステートレスセッションBeanとステートフルセッションBeanの違いを理解しようとしています。ステートレスセッションBeanがメソッド呼び出しの合間に状態を保持しない場合、なぜ私のプログラムはそのように動作するのですか?

クライアント

getNumberが毎回0を返すことを期待していましたが、1を返し、ブラウザでサーブレットをリロードするとさらに増加し​​ます。問題は、ステートレスセッションBeanがどのように機能するかを理解していることであり、もちろん、ライブラリやアプリケーションサーバーでは機能しません。ステートレスに変更すると動作が異なるステートレスセッションBeanの簡単なHelloWorldタイプの例を誰かに教えてもらえますか?

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

java - EJB 3.1 API の Maven リポジトリ

EJB 3.1 API 依存関係に使用できる Maven リポジトリーは?

0 投票する
4 に答える
13707 参照

glassfish - セッション Bean をメッセージ駆動型 Bean に注入する方法は?

私はかなりJava EEに慣れていないので、これはばかげているかもしれません..我慢してください:D

ステートレス セッション Bean をメッセージ駆動型 Bean に注入したいと考えています。基本的に、MDB は JMS メッセージを取得し、セッション Bean を使用して作業を実行します。セッション Bean は、ビジネス ロジックを保持します。

これが私のセッション Bean です。

一致するインターフェース:

ここに私のMDBがあります:

これまでのところ、ロケット科学ではありませんよね?

残念ながら、これを Glassfish v3 にデプロイし、適切な JMS キューにメッセージを送信すると、glassfish が TestBean EJB を見つけられないというエラーが発生します。

だから私の質問は:

  • これは、セッション Bean を別の Bean (特にメッセージ駆動型 Bean) に注入する正しい方法ですか?
  • 名前の参照が失敗するのはなぜですか?
0 投票する
3 に答える
2664 参照

web-services - EJB3リモートとWebサービス、パフォーマンス?

私は、それを使用するすべての人がそのコンピューター上で計算を実行するクライアントを持っているWebアプリを計画しています(これらの計算はサーバー上で実行できないため、負荷が大きすぎるため...)、結果をに送信しますサーバ。

私のアプリケーションに興味を持っている人はたくさんいると思います。そのため、私のアーキテクチャが優れているかどうか、そして何千人もの人を処理できるかどうか疑問に思っています。

Glassfishサーバーを使用してJNDIを介してリモートEJBを公開することを計画しているので、1000人が同時にこれらのEJBを使用して(1秒あたり5〜50のリクエストがあると思います)、ローカル計算に必要なデータを取得してから、結果を送信します...

EJBを多くのクライアントに公開するのは費用がかかりますか?Webサービス、rmi、別のソリューションを使用する方が良いでしょうか?

私がやろうとしていることのために、私に別のアーキテクチャをお勧めしますか?

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

maven-2 - Maven2 マルチモジュール ejb 3.1 プロジェクト - デプロイ エラー

問題は、プロジェクトを Glassfish にデプロイするときに次のエラーが発生することです。

しかし、プロジェクト構造がMaven2でどのように見えるかから始めましょう...

次のシナリオを作成しました。

MultiModuleJavaEEProject - 親モジュール
-> モデル ---> jar としてパッケージ化
-> ejb1 ----> ebj としてパッケージ化
-> ejb2 ----> ebj としてパッケージ化
-> web ----> war としてパッケージ化

したがって、モデル、ejb1、ejb2、および web は、親 MultiModuleJavaEEProject の子/モジュールです。

_ejb1 はモデルによって異なります。
_ejb2 は ejb1 に依存します。
_web は ejb2 に依存します。

ポンポンは次のようになります。

_親:

_モデル:

_ejb1:

_ejb2:

_ウェブ:

モデルは単純な Pojo です。

また、ejb1 には STATELESS ejb が 1 つだけ含まれています。

同様に、ejb2 はステートレスな ejb にすぎません。

また、Web モジュールにはサーブレットのみが含まれています。

また、Web モジュールの web.xml ファイルは次のようになります。

したがって、それ以上のファイルは私が設定しません。EJB 3.1 を使用しているため、どの ejb ファイルにも ejb-jar.xml はありません。したがって、 ejb-jar.xml 記述子はオプションだと思います。私はこれですよね?
しかし問題は、すでに述べたエラーです:

誰でも助けることができますか?

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

java - サーブレットで EJB 3.1 DI を使用するには? (Web アプリケーションから @EJB でセッション Bean を注入できませんでした)

Web アプリケーション (gwt、jpa) を別の 2 つのアプリケーション (ejb/jpa のビジネス ログインと gwt の Web クライアント) にマージしようとしています。現在、Web アプリケーション (単純なサ​​ーブレット) から Bean を注入できません

私はグラスフィッシュv3を使用しています。モジュール limbo(ejb jar) は、モジュール lust (war) に依存しています。

Lust を limbo のコンパイラ出力で使用すると、すべてが完璧に機能します (Web アプリケーションの ejb と が 1 つのアプリケーションとして一緒にデプロイされている場合)。

コンテナの設定を台無しにしましたか?

これが私の手順です:

ejb コンテナーにデプロイされた limbo.jar (ejb-jar) がいくつかあります。ejb-jar.xml は使用せず、注釈のみを使用します。





lust.war の Web アプリケーションから PersistentService セッション Bean (limbo.jar に含まれる) を使用しようとするよりも (limbo.jar と lust.war は耳にありません)



web.xm



servelt のロード中に i ge 404 エラー (要求されたリソース () が利用できません。)

ログのエラー:

グローバル


javax.enterprise.system.tools.deployment.org.glassfish.deployment.common


ejb jar は、この情報ログでデプロイされました:




他のアプリケーションからのインジェクションの場合、追加の構成を追加する必要がありますか?

いくつかのアイデア?


@Remoteの場合


ログ:


情報デプロイ ログ


リモート ビジネス ロジック呼び出しを使用している場合、ejb jar を WEB=INF/lib に含める必要がありますか? リモートの場合、DI が機能しないのはなぜですか?

そして、limboモジュールからのコンパイル出力を含めて提供すると、うまく機能します:

別の Web アプリケーションの PersistentServiceRemote ( PersistentServiceBean のリモート インターフェース) を検索できなかったのはなぜですか?

グラスフィッシュのサンプルコードで動作するはずです(.

何か案は?


Ok。パスカルが言ったように。リモート インターフェイスを webapp にパッケージ化する必要があります。別のアプリケーションでローカル インターフェイス インジェクションを使用できます。ローカル インターフェイスを使用する必要がある場合は、アプリケーションに ejb jar を含める必要があります。現在の設計 - webapp へのパッケージ リモート インターフェイス

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

servlets - サーブレットへのjmsリソースの挿入とMDBのベストプラクティス

ejb 3.1、サーブレット3.0(glassfishサーバーv3)を使用

シナリオ:jmsメッセージをリッスンし、他のセッションBean(ステートレス)に処理を提供するMDBがあります。jmsリソースを注入するServelet。

質問1:静的宣言を使用するときにサーブレットがjmsリソースを挿入できないのはなぜですか?

私が得るエラーは次のとおりです:

[#| 2010-05-03T15:18:17.118 +0300|警告|glassfish3.0| javax.enterprise.system.container.web.com.sun.enterprise.web | _ThreadID = 35; _ThreadName = Thread-1; | StandardWrapperValve [WorkerServlet]:PWC1382:サーブレットWorkerServletの例外を割り当てますcom.sun.enterprise.container.common.spi.util.InjectionException:com.sunでクラスua.co.rufous.server.services.WorkerServiceImplの管理対象オブジェクトを作成中にエラーが発生しました。 company.container.common.impl.util.InjectionManagerImpl.createManagedObject(InjectionManagerImpl.java:312)at com.sun.enterprise.web.WebContainer.createServletInstance(WebContainer.java:709)atcom.sun.enterprise.web.WebModule。 createServletInstance(WebModule.java:1937)at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1252)原因:com.sun.enterprise.container.common.spi.util。InjectionException:未解決のMessage-Destination-Refua.co.rufous.server.services.WorkerServiceImpl/queue@java.lang.String@nullをcom.sunのクラスua.co.rufous.server.services.WorkerServiceImplに挿入しようとしたときに例外が発生しました.enterprise.container.common.impl.util.InjectionManagerImpl._inject(InjectionManagerImpl.java:614)at com.sun.enterprise.container.common.impl.util.InjectionManagerImpl.inject(InjectionManagerImpl.java:384)at com.sun .enterprise.container.common.impl.util.InjectionManagerImpl.injectInstance(InjectionManagerImpl.java:141)at com.sun.enterprise.container.common.impl.util.InjectionManagerImpl.injectInstance(InjectionManagerImpl.java:127)at com.sun .enterprise.container.common.impl.util.InjectionManagerImpl.createManagedObject(InjectionManagerImpl.java:306)... 27その他原因:com.sun.enterprise.container.common.spi.util.InjectionException:インスタンスベースのインジェクションのみをサポートするクラスでの静的フィールドprivate staticjavax.jms.Queueua.co.rufous.server.services.WorkerServiceImpl.queueの不正使用com.sun.enterprise.container.common.impl.util.InjectionManagerImpl._inject(InjectionManagerImpl.java:532)で... 31詳細|#]

私のMDB:

静的宣言がなくてもすべてが正常に機能します。

質問2:MDBを操作するためのベストプラクティスは何ですか:onMessage()で完全なリクエストを処理するか、onMessage()メソッドで別のBean(私の場合はステートレスBean)を呼び出して処理します。ソープサービスへの呼び出しをほとんど含まない処理なので、完全な処理時間は3秒になる可能性があります。

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