問題タブ [conversation-scope]
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.
jsf-2 - #{javax.enterprise.context.conversation.id} は常に空です
template.xhtml でこの式を使用しています
しかし、コードを実行すると、出力は常に
会話 []。
この式の戻り値がレンダリングされないのはなぜですか?
Windows 8.1 で NetBeans 8、Glassfish 4.1、JSF 2.2 (Mojarra) を使用しています。
jsf - 非同期メソッド内に ConversationScoped Bean を注入する
ConversationScoped Bean から EJB で @Asynchronous アノテーションが付けられたメソッドを呼び出す必要があります。このメソッド内で、@Inject を使用していくつかのクラスのインスタンスを作成し、ConversationScoped Bean を注入します。非同期メソッドのコンテキストを特定の会話に設定することは何とか可能ですか?
あなたが私を助けてくれることを願っています。
java - 既存の Request Scope から Session Scope と Conversation Scope を有効にすることはできますか?
私は@EJB
注入された豆を持っていますTransactionCompleteJob
。この Bean には@Asynchronous
メソッドがありasyncCompleteTransaction(Integer transactionId)
ます。
このメソッド内でセッションスコープまたは会話スコープのいずれかである他の注入された Bean およびエンティティを使用しようとすると、エラーが発生します。
WELD-001303: No active contexts for scope type javax.enterprise.context.ConversationScoped
そこで、jboss 溶接ドキュメントBoundConversationScope
で指定されているように、溶接の、BoundSessionScope
、およびを注入BoundRequestScope
し、それらをアクティブにして、リクエスト データの空のマップとセッション データの空のマップを生成しました。
問題は、リクエスト スコープを有効にすると、別のエラー メッセージが表示されることです。
WELD-001304: More than one context active for scope type javax.enterprise.context.RequestScoped
リクエスト スコープを有効にしないようにしましたが、実際のリクエスト スコープにあるもののリソース リークが発生するようです。具体的には、リクエスト スコープの JPA がありEntityManager
ます。特に、プロセスが終了すると、別のメッセージが表示されます。
WELD-000019: Error destroying an instance org.hibernate.jpa.internal.EntityManagerImpl@5df070be of Producer Method [EntityManager] with qualifiers [@RequestScopey @Any] declared as [[BackedAnnotatedMethod] @Produces @RequestScoped @RequestScopey public packagename.entitymanager.EntityManagerProducer.createRequestScopedEntityManager()]
すでにアクティブなリクエスト スコープ コンテキストがある場合、どのようにリクエスト スコープ コンテキストを開始できますか? または、既存のリクエスト スコープ コンテキストに結び付くセッション スコープ コンテキストと会話スコープ コンテキストを開始しますか? あるいは、この問題を回避するためのより良い方法はありますか?
編集:
RequestScope
独自の溶接を開始する前に、それを非アクティブ化できるように、溶接から取得する方法はありますか? または、TransactionCompleteJob
それを注入してメソッドを呼び出すことなく、非同期的に非同期的に開始する@Asynchronous
方法はありますか?
jsf - 会話の開始後に ConversationScope 値が更新されない
レコードのリストを表示するテーブルと、新しいレコードを追加するダイアログの 2 つの部分がある jsf ページがあります。いくつかの検証機能を追加しましたが、正しく機能させることができません。私はそれが必要です:
1) 最初にダイアログが表示されたときに検証エラーが表示されない
2) 検証エラーが発生した場合は、開いたままにしてエラー メッセージを表示します。
3) 検証エラーがなく、バックエンドが正常に実行された場合は、テーブルを更新します。
これは私が持っているものです:
豆:
ここに2つの問題があります:
1) 空の文字列を送信した後、(addMode が true であるため) ダイアログがまだ開くことを期待していますが、そうではありません。それはなぜです?
2)「追加」ボタンを次のように配置した場合:
少なくともダイアログを再度開くと、エラー メッセージが表示されます。しかし、私のコードでは、エラー メッセージが表示されません。なぜそうなのですか?それらは同等ではありませんか?
私の理解に何か問題がありますか?
助けてください。どうもありがとうございました。
jsf - すべてのリクエストで呼び出される ConversationScoped Bean の PostConstruct メソッド
さて、私は ConversationScoped を使用しています。PostConstruct が会話の開始時に 1 回だけ呼び出されることを願っています。以下を参照してください。
したがって、バッキング Bean が作成されると、会話が初期化され、CID がセッションに保存されてから使用されます。XHTML に commandButton の「保存」があり、このボタンが呼び出されると、PostConstruct が再度呼び出されます。理由はわかりません。
生成された HTML は次のとおりです。
したがって、「href=#」がオンリックの実行を回避することは理解しています。これが問題だと思いますが、修正方法がわかりません。注意: postConstruct は常に前に呼び出されるため、salvarAndRedirecionar() メソッドは呼び出されません。
2) 別の質問があります: 会話を始めても終わらない場合は、何か問題がありますか? 会話を手動で終了したくない場合があります。これは、ページが 1 つしかないためです。開始するだけです。
jsf - ページからページへのナビゲーション中に再構築された @ConversationScoped Bean
あるページから別のページに変更すると、奇妙な動作が見つかりました。
CDI、Jsf 2.2 API 2.2.8、Omnifaces 2.2、Primefaces 5.2、wildfly 8.2 を使用しています。
ほとんどのコントローラーとページは期待どおりに動作しますが、ページにアクセスすると @PostConstruct メソッドが呼び出され、ページを離れると @PostConstruct が再度呼び出されるものもあります。page.xhtml の何かに原因があることに気がついたので、探し始めました。しかし、とにかく奇妙な動作です。
私のコードといくつかの例に従ってください:
beginconversation() や list() などの抽象クラスメソッドを使用するコントローラー
抽象クラス
問題を見つけたいくつかのxhtmlページと解決策(見つけたとき)は次のとおりです。
エラー:
上記のメソッドはパターンを返すだけです。
働く
エラー:
働く:
問題はまさに「バインディング」でした。
エラー:
働く:
「filteredValue」を削除するだけで機能し始めました。しかし、それがなければ、フィルター プロパティを使用できません。
ナビゲーションはプライムフェイスのメニューによって行われ、すべてのページは同じロジックです:
そして方法:
jsf - JBWEB006003: 型クラス java.lang.String の会話をインターフェース java.util.Map に変換できません
一部のセッション スコープ Bean を会話スコープに変換しようとしています。ページからいずれかの Bean のメソッドにアクセスしようとするとmenu.xhtml
、次のエラーが発生します。
スタック トレースは次のとおりです。
これはどのように発生し、どうすれば解決できますか?