問題タブ [stateful-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.
ejb-3.0 - キャッシュ アイドル タイムアウト (cache-idle-timeout-in-seconds) が経過した後、ステートフル セッション Bean が非活性化されない
ステートフル セッション Bean のライフ サイクルを理解しようとしています。アクティブ化とパッシベーションのライフ サイクル コールバックがいつ呼び出されるかに特に関心があります。このシナリオを理解するためにデモを作成しました。これが私のコードです:
私のリモートインターフェースは:
私のステートフル セッション Bean クラスは次のとおりです。
この Bean のスタンドアロン クライアントは次のとおりです。
現在、GlassFish 3.1.2 で =20 を設定していますがCache Idle Timeout
、まだ私のステートフル セッション Bean は 20 秒後にパッシベーションしていません。Glashfish で何か間違ったことをしているのですか、それとも何かが正しく起こっていないのでしょうか?これを理解するのを手伝ってください。前もって感謝します
session - Javaee ステートフル Bean が機能しない
@Stateful @StatefulTimeout(value = 2, unit = TimeUnit.HOURS)
保持できるように残りの Beanを定義しましたprivate MyContext userContext;
(基本的List<String>
には、残りの Bean に渡された以前のすべての値を保持します)。
openshift の wildfly 8.1 コンテナーで webapp を起動しました。
残念ながら、私の Bean は正しく機能していません。
コンテナーが 2 つの呼び出しを同じセッションに関連付けることができなかったかのように、呼び出しごとに Bean が再作成されるようです。これは、クライアント側に Cookie もセッション ID パラメータもないという事実によって確認されているようです。
app / conf に何が欠けている可能性がありますか? wildfly が自動的にユーザー セッションを作成しないのはなぜですか?
jsf - HttpSession またはステートフル セッション Bean でのセッション トラッキング?
ショッピング カートのような jsf Web アプリケーションを開発したいのですが、ショッピングの前にログインする必要があります。各ユーザー セッションを追跡するにはどうすればよいですか。この状況で最善の方法は何でしょう。プレゼンテーション層 (HttpSession) でセッションを追跡するか、サーバー側でステートフル セッション Bean を追跡します。
前もって感謝します
wildfly - wildfly で、EJB3.2 固有の「passivationCapable=false」を使用せずにステートフル Bean パッシベーションを無効にする方法
クラスターをセットアップしました。プロジェクトで EJB 3.1 を使用しています。どうにかしてステートフル セッション Bean のパッシベーションを無効にすることはできますか?
ejb - RequestedScopre ManagedBean VS ステートフル Bean
UserDao クラスのどの実装を選択するか? 1 つはステートフル セッション EJB で、もう 1 つは RequestedScope アノテーションを持つマネージド セッション Bean です。
ステートフル セッションのコードは、はるかに単純に見えます。このユーザー グリーターのケースでは、両方とも機能するはずですか?
また、ステートフル EJB のスコープは何ですか?
UserDao.java
EJBUserDao.java
ManagedBeanUserDao.java
jakarta-ee - ステートフル Bean はコンテナーまたは EJB のアプリケーションによって管理されますか?
これは、私が最近読んだオラクルのブログの段落です。
この動作は、ステートフル セッション Bean の動作とは大きく異なります。ステートフル セッション Bean インスタンスは、@Remove アノテーションが付けられたメソッドを呼び出して、クライアントが明示的に削除する必要があります。コンテナによって自動的に破棄されることはありません。どのコンテキストにもバインドされていません。ステートフル セッション Bean を HttpSession に関連付ける場合は、HttpSession の終了時またはタイムアウト時の信頼性の高い破棄にも注意する必要があります。
これによると、使用後に削除するのはアプリケーションの責任ですstateful session
。
しかし、私は数冊の本を読みました. が@Remove
呼び出されない場合でも、コンテナはスコープから Bean を削除しますが、独自の裁量で.
だから私は何が正しいのか知りたいですか?明示的に削除するか@stateful
、削除する場合はコンテナに任せるか
編集
引用しますBeginning Java EE7 by Antonio Goncalves
- 優れた本。pdf 243ページ
オプションの @javax.ejb.StatefulTimeout および @javax.ejb.Remove アノテーションに注目してください。@Remove は checkout() メソッドを装飾します。これにより、checkout() メソッドを呼び出した後、Bean インスタンスがメモリから完全に削除されます。@StatefulTimeout はタイムアウト値を割り当てます。これは、Bean がコンテナーによって削除される前に、アイドル状態 (クライアント呼び出しを受信しない状態) を維持できる期間です。この注釈の時間単位は java.util.concurrent.TimeUnit であるため、DAYS、HOURS ... から NANOSECONDS (デフォルトは MINUTES) まで可能です。または、これらのアノテーションを回避し、クライアントのセッションが終了または期限切れになったときにインスタンスを自動的に削除するコンテナーに依存することもできます。ただし、適切なタイミングでステートフル Bean が削除されるようにすると、メモリ消費量が削減される場合があります。
java - ステートフル Bean は状態を保持しません
ステートフル Bean があります。
Arquillianテストがあります。
そしてプロセッサコード:
RequestProcessor が Band を出力することを期待しています。しかし、実際には毎回 null になります。ステートフル Bean を正しく理解していない可能性がありますか?
java - JAX-RS および CDI - ステートフル セッション Bean の注入: セッターが機能しない
RESTEasy を使用して Web サービスに取り組んでいます。
「ログイン」と「ログアウト」の2つの方法を持つ「認証」Webサービスがあります。
「loggedIn」、ブール値、および「userId」、整数の2つの属性を持つステートフルセッションスコープBean、UserDataがあります。
Authentication クラスに UserData を挿入しています。「loggedIn」属性ではうまく機能しています。「login」メソッドを呼び出すと、true に設定され、セッションが終了するまで true のままになります。
しかし、奇妙なことに、「userId」属性では機能しません。「login」メソッドを呼び出すと、userId をユーザー ID に設定しましたが、「setUserId」メソッドが呼び出された直後でも、userId は null のままです。
認証クラスのコードは次のとおりです (logOut メソッドなし、現在は使用されていません)。
そして、ここに「UserData」クラスのコードがあります:
「ステートフル」および「ステートレス」アノテーションの有無にかかわらず試しました。何も変わりません。
私は本当に何をすべきか分かりません。
「セッター」の構文エラーかもしれないと思ったのですが、どこにあるのかわかりません。
EDIT:ところで、WildFlyサーバーでWeldとRestEASYを使用しています。ありがとう :)
dependency-injection - ステートレス Bean 内にステートフル Bean を注入する
usingstateful session bean
内にを注入すると、正確には何が起こりますか: コンテナーはステートレス Bean (プールに存在する) ごとにステートフル Bean の新しいインスタンスを注入しましたか、それともそれらの間で共有される同じインスタンスですか?stateless session bean
DI
JNDI
この場合の使用が DI よりも優れていることが示されているのはなぜですか?
よくわかりませんでした。
java - ステートフル セッション Bean (EJB) の操作
私は最近、ejb のステートフルおよびステートレス セッション Bean について学びました。問題なくステートレス セッション Bean を使用できます (いくつかのアプリケーションを作成しました) が、ステートフル セッション Bean を使用してアプリケーションを実装するのは難しいと感じています。
これが私のシナリオです: 顧客は ID を使用してログインし、自分のアカウントで取引を行うことができます。ID をログイン サーブレット自体のセッション Bean に保存して、セッションから ID を取得してトランザクションを実行できるようにしたいと考えています。
httpSessions の操作方法は知っていますが、これらの ejb セッション (ステートフル Bean) の操作方法は知っていません。ガイドしてください。アカウント ID をセッション (ejb ステートフル セッション) に保存し、別のサーブレットで取得したいと考えています。
私は httpSessions を使用しました。以下は私のコードです:
しかし、上記は通常のセッションです。アカウント セッション Bean を使用して ID を保存し、取得するにはどうすればよいですか。
ありがとうございました