問題タブ [session-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.

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

spring - イベント時のSpringセッションBeanの初期化

私のプロジェクトでは、現在のセッションに関連付けられたオブジェクトを格納するために SessionBean が必要です。セッションが作成され、ユーザーが認証されたときに、オブジェクトを自分の Bean に設定したいと考えています。

ビーン定義:

認証リスナー:

}

しかし、問題は、現在の SessionBean インスタンスのインスタンスを取得できないことです。それは私のエラーです:

どうすればいいですか?現在のユーザーで SessionBean を初期化できるイベントまたはリスナーはどれですか。

0 投票する
0 に答える
373 参照

hibernate - @Stateless セッション Bean を使用して、1 対多の関係で 2 つのエンティティを永続化する

こんにちは、私は 2 つの @Stateless セッション Bean ClientFacade と CreditCardFacade を使用しています。このファサードを使用して両方のエンティティを保持し、Client を CreditCard に関連付けたいと考えています。

クライアントは @OneToMany (逆サイド) で、CreditCard は @ManyToOne (所有サイド) です。

単体テストを書きました:

しかし、ここでの問題は、クライアントとクレジットカードがDBに永続化され、クレジットカードが外部キーをクライアントに設定していることですが、client.getCreditCards()にアクセスしようとすると、データベースにそのような関係があるにもかかわらずnullです、そして私は以前にクライアントエンティティを更新していましたが。これが JTA の代わりに RESOURCE_LOCAL で類推的に行われた場合、そのようなアプローチは完全にうまく機能します。

更新しました

この方法でエンティティを変更しました:

と:

そして今、上記と同様の方法で(リフレッシュせずに)永続化しようとすると、次のような例外が発生します。

このような Facade EJB を組み合わせて使用​​し、関係を維持するにはどうすればよいかを考えます。EntityTransaction を使用して単一のトランザクションでこの関係を保持している場合、すべてが正しく保持されているようです。しかし、AbstractFacade パターンを使用して EJB @Stateless を保持しようとすると失敗します。なぜこのような方法でこれを保存できるのか、この問題を解決できません。2 つの別々のトランザクションがあり、それらの間でオブジェクトが切り離されていることが原因である可能性があります。

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

java - セッション Bean が間違った値を返す

次の html ページ、サーブレット クラス、Bean クラスが、wildfly 8 で実行される Eclipse プロジェクトに実装されています。

私が抱えている問題は、いくつかの値でサーブレットを呼び出すたびに、Bean クラスの追加操作がゼロを返すことです。私は些細なことを正しくしていないことを知っています。追加操作から正しい値を取得するには、何を変更する必要がありますか。

AddServlet.java

AddEjb.java

index.html

以下はsysoutログです

0 投票する
0 に答える
790 参照

java - LockType.Write メソッドから LockType.READ メソッドを呼び出すとどうなるか

クラス レベルで LockType READ であるシングルトン コンテナ管理セッション Bean の LockType WRITE メソッドが、LockType READ である同じ Bean 内の別のメソッドを呼び出すとどうなりますか。

上記の Bean で、このような実装を行うのは正しいですか? この update() が実行され、同時に他のサービスが calculate() を呼び出すとどうなりますか? サービスは update() が終了するまで待機しますか、それとも並行して calculate() も実行しますか? 並行して実行すると、データが破損したり、データの不一致が発生したりする可能性が高くなると思います。

calculate メソッドはプライベートにすることができ、WRITE 保護メソッドの下でのみ使用できます。こうすることで、同時リクエストによる不一致が発生しないことが保証されます。

上記のような場合に同時リクエストを処理する際の影響を知り、正しいアプローチに従ってください。

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

java - synchronized キーワードの代わりに @Lock アノテーションを使用する

アプリケーションのセットアップ (簡略化)

私は Java の並行性にはかなり精通しているように感じますが、Java EE とその注釈については比較的新しいものです。

アプリケーションのビジネス ロジックを実行するDataHandlerannotated withというクラスがあります。@Singletonこのクラスは、 で注釈が付けられた Web サービス実装クラスに注入され@WebServiceます。Web サービスのメソッドの 1 つが呼び出されると、いくつかのファイルを解析DataHandlerするメソッドが呼び出され、parseFiles()内にデータが格納されますDataHandler。その後、次の内部でゲッターを呼び出しますDataHandler

これで、UpdateTopic というトピックに関するデータを受信し、それを別の型に変換して内部に格納するメッセージ駆動型 Bean も用意されましたDataHandler

アクセス時にすべてのデータが最新になるように、メソッド、メソッド、および 2 つのゲッターparseFiles()を同期させたいと考えました。convertAndStore()

これを達成するために、 4つの方法すべてを単純に作成しsynchronizedました。私の理解では、ファイルの解析中に更新が MDB に入った場合、convertAndStore()メソッドは完了するまでロックさparseFiles()れます。同様に、更新が変換および保存され、Web サービスが 2 つのマップのいずれかにアクセスしようとすると、convertAndStore()終了するまで待機します。間違っている場合は修正してください。


私の質問

そうは言っても、最近@ConcurrencyManagement@Lock注釈について読んだばかりです。これらの 4 つのメソッドを同期する代わりに。Bean の状態と 2 つのparseFiles()ゲッターを.convertAndStore()@Lock(LockType.WRITE)@Lock(LockType.READ)

synchronizedこれを行い、キーワードを完全に使用しないようにする必要がありますか? (おそらく同期されたブロックのためsynchronizedだけに?)、またはこれらの注釈は現在それを置き換えていますか?

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

java - Map への EJB 3 セッション Bean 参照の格納

現在、私はEJB3.0 session beans自分のアプリケーションで使用しています。通常、私は使用してBeanを検索しjndi name、関連するメソッドを呼び出します。しかし最近、何Map度も検索するのではなく、これらの参照を保存するように提案されました。

毎回参照を避けるためにSession Bean参照を保存するのは良い習慣ですか? Mapそれとも危険ですか?アプリケーションで発生する可能性がある場合、どのような問題が発生する可能性がありますか?

それが良い習慣であれば、私は別の懸念があります。

参照を Map格納するクラスは、モジュール Asession beansの一部です。モジュール B1 ...Bnの一部です。そのため、参照を に保存するときにMap検索した後、元に戻すことができます。その間、 モジュール Bnは再デプロイされますが、A はそのまま残ります。そのため、マップから Bean を検索した後 (エントリが含まれているため)、それを使用してClassCast Exceptionスローされます。

その理由は何ですか?どうすれば回避できますか? JBOSS アプリケーション サーバー - jboss 5.1.0.GAを使用しています。

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

eclipse - Eclipse で新しいセッション Bean を作成するときにプロジェクト名を選択できない

ejb プロジェクト用に Eclipse で新しいセッション Bean を作成しているときに、プロジェクト名を選択できないようで、セッション Bean を作成できません。

スクリーンショット

JBoss 7.1、ejb モジュール 3.1、および jdk 1.8 を使用しています。