問題タブ [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.
java - EJB 3.1@EJBPOJOへの注入
新しいEJB3.1仕様では、EJBをpojoに注入することは可能ですか?EJB 3.0では、@ EJBアノテーションを使用してEJBを挿入できることは知っていますが、これは単純なpojoでは機能しませんでした。
そうでない場合は、新しいキーワードを単純に使用することはできないことを知っているので、JNDIでBeanを検索する必要があります。
java - JavaEEDependsOnローカルEJB
@Singleton
次のように定義されたEJBを持つEJBプロジェクトがあります。
次に、別のEJBを持つ別のEJBプロジェクトがあります。
ただし、@DependsOn
は機能していません。さまざまな値を試しました@DependsOn
が、成功しませんでした。サーバーは次のコマンドで起動できません。
モジュールのデプロイメントエラー:Atlas:アプリのデプロイ中に例外が発生しました:java.lang.RuntimeException:EJBOutboundRoutingのDependsOn依存関係'DataModelBeanLocal'が無効です%%%EOL %%%
ここで何をすべきかわかりませんが、何か提案はありますか?
java - GlassfishがSingleton Beanを2回初期化する
シングルトン ejb が 2 回初期化されています。理由はわかりませんが、私が知る限り、シングルトン Bean を持つことのポイントを完全に擁護しています。どんな助けでも大歓迎です。ご覧のとおり、複数の初期化を防ぐために静的ブール値を入れようとしましたが(必須ではありません)、違いはありませんでした。
豆:
ログ出力スニペット:
2豆を作っているのか!! それとも、アプリを 2 回デプロイしていますか?
余談ですが、私はglassfish v3を使用していますが、これは十分に成熟していますか? v2 か何か他のものを使用する必要がありますか? 考え?
java - ステートレスおよびステートフルエンタープライズJavaBeans
Java EE 6チュートリアルを実行していて、ステートレスセッションBeanとステートフルセッションBeanの違いを理解しようとしています。ステートレスセッションBeanがメソッド呼び出しの合間に状態を保持しない場合、なぜ私のプログラムはそのように動作するのですか?
クライアント
getNumberが毎回0を返すことを期待していましたが、1を返し、ブラウザでサーブレットをリロードするとさらに増加します。問題は、ステートレスセッションBeanがどのように機能するかを理解していることであり、もちろん、ライブラリやアプリケーションサーバーでは機能しません。ステートレスに変更すると動作が異なるステートレスセッションBeanの簡単なHelloWorldタイプの例を誰かに教えてもらえますか?
java - EJB 3.1 API の Maven リポジトリ
EJB 3.1 API 依存関係に使用できる Maven リポジトリーは?
glassfish - セッション Bean をメッセージ駆動型 Bean に注入する方法は?
私はかなりJava EEに慣れていないので、これはばかげているかもしれません..我慢してください:D
ステートレス セッション Bean をメッセージ駆動型 Bean に注入したいと考えています。基本的に、MDB は JMS メッセージを取得し、セッション Bean を使用して作業を実行します。セッション Bean は、ビジネス ロジックを保持します。
これが私のセッション Bean です。
一致するインターフェース:
ここに私のMDBがあります:
これまでのところ、ロケット科学ではありませんよね?
残念ながら、これを Glassfish v3 にデプロイし、適切な JMS キューにメッセージを送信すると、glassfish が TestBean EJB を見つけられないというエラーが発生します。
だから私の質問は:
- これは、セッション Bean を別の Bean (特にメッセージ駆動型 Bean) に注入する正しい方法ですか?
- 名前の参照が失敗するのはなぜですか?
web-services - EJB3リモートとWebサービス、パフォーマンス?
私は、それを使用するすべての人がそのコンピューター上で計算を実行するクライアントを持っているWebアプリを計画しています(これらの計算はサーバー上で実行できないため、負荷が大きすぎるため...)、結果をに送信しますサーバ。
私のアプリケーションに興味を持っている人はたくさんいると思います。そのため、私のアーキテクチャが優れているかどうか、そして何千人もの人を処理できるかどうか疑問に思っています。
Glassfishサーバーを使用してJNDIを介してリモートEJBを公開することを計画しているので、1000人が同時にこれらのEJBを使用して(1秒あたり5〜50のリクエストがあると思います)、ローカル計算に必要なデータを取得してから、結果を送信します...
EJBを多くのクライアントに公開するのは費用がかかりますか?Webサービス、rmi、別のソリューションを使用する方が良いでしょうか?
私がやろうとしていることのために、私に別のアーキテクチャをお勧めしますか?
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 記述子はオプションだと思います。私はこれですよね?
しかし問題は、すでに述べたエラーです:
誰でも助けることができますか?
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 へのパッケージ リモート インターフェイス
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秒になる可能性があります。
ありがとうございました。