問題タブ [deltaspike]
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.
deltaspike - タブを閉じるときに @ViewAccessScoped Bean のスコープを解除する
@ViewAccessScoped
詳細については、Bean に 2 つのBean と 2 つのページ/ビュー、検索用の 1 つの Bean を持つ JSF アプリがあります。詳細 Bean は @ViewAccessScoped を参照するため、検索に戻るとデータが利用可能になります。他の CDI リファレンスはありません。WindowRenderMode は ですClientWindowRenderMode.CLIENTWINDOW
。これ以上の構成はありません。
これはこれまでのところ非常にうまく機能しています。別のページに移動するか、ログアウトすると、Bean のスコープが解除されます。私が経験した 1 つの問題: 新しいブラウザー タブで詳細ページを開くと、2 つの新しい Bean が作成されます。これは予期される動作です。しかし、タブを閉じると、Beans はまだそこにあります。タブが閉じられたときにサーバーに通知されないと思います。
- タブ clsoes を検出するために使用できるデルタスパイクに組み込みのソリューションはありますか?
- @ViewAccessScoped (Session-Timeout 以外に) の Bean のタイムアウトはありますか?
- 組み込みのソリューションがない場合: プログラムで Bean のスコープを解除するにはどうすればよいですか? できれば、そのタブに接続されているすべての Bean のスコープを解除します (= 同じ Window-ID) (JavaScript で自分自身を閉じることを検出し、閉じるときに Bean-Method を呼び出します)
jsf - @WindowScoped Bean を使用した新しいタブの処理
@WindowScoped
複数のタブをサポートするために非常に便利な注釈を使用する Deltaspike を使用する CDI アプリケーションがあります。アプリケーションのシナリオは次のとおりです。
- ユーザーはリストから項目を選択し、[編集] をクリックします。
- ユーザーはオブジェクトに対して認証します。
- 編集中のオブジェクトの ID と認証されたユーザーのユーザー名は、ウィンドウ スコープに対して保存され、システムの編集セクション内のすべてのページで使用できます。
- ユーザーがこのオブジェクトへのアクセスを終了したら、[終了] をクリックすると、このオブジェクトとのセッションが閉じられます (
@WindowScoped
Bean が消去されます)。
ユーザーが新しいタブを開き、編集する新しいオブジェクトを選択すると、ID と認証の詳細が新しい@WindowScoped
オブジェクトに対して保存されるため、すべてが完全に機能します。
ただし、複数の編集ページがあるため、ユーザーは右クリックしてリンクを新しいタブで開くこともできます。@WindowScoped
新しいBean はそれが作成されたコンテキスト (基本的には前のセッションのオブジェクト ID とユーザー名) について何も知らないため、これは失敗します。
@WindowScoped
以前のウィンドウ スコープ オブジェクトにアクセスする方法はありますか? または、ウィンドウ スコープの Bean 間で情報を共有する一般的な方法はありますか?
アドバイスをありがとう!
java - Deltaspike での JUnit テストのロールバック
Java SE プロジェクトで、CDI 用の OpenWebBeans で Apache Deltaspike を使用しています。@Transactional
Java EE プロジェクトで Spring Data JPA を使用しましたが、クラスまたはテスト メソッドの上にアノテーションを追加することで、データをデータベースにコミットしない単体テストをセットアップするのは簡単でした。ただし、Deltaspike で同等の手法を見つけることができませんでした。
各テストの後に手動でデータをロールバックするか、テストが実行されるたびにデータベースを削除して再作成する以外に、各単体テストが完了後にデータの変更をロールバックするように指定する方法はありますか?
私の単体テストは次のようになります。
quartz-scheduler - DeltaSpike @Schedule 待機は、新しい実行の前にどのように終了しますか?
この lib DeltaSpike Scheduleを使用して cron タスクを作成しています。
私のタスクは毎分実行されますが、古いタスクの完了を待機するようにスケジュールを設定する方法がわかりません。
タスクが 1 分以上遅れると、別のタスクが作成されます。
java - メッセージ駆動型 Bean とトランザクション
およびトランザクションについて多くの質問があることは承知してmessage driven beans
いますが、一般的なシナリオであるに違いない (私が考えるもの) に対する答えを見つけることができませんでした。
メールを送信するために呼び出すことができるサービスがあります。呼び出されると、テーブルに電子メール レコードが作成されActiveMQ
、処理のために ID がプッシュされます。ここまでは問題ありませんが、キューは ID を取得し、トランザクションがコミットされる前に電子メールの送信を試み、電子メールはデータベースにありません。
サービス自体はトランザクションですが、より大きなトランザクションの一部である場合もあります。
このシナリオを処理する最善の方法は何ですか? 現在、動作する Thread.sleep を使用してConsumer
います。しかし、これは汚い気がします...
(私はSpringを使用していません)
quartz-scheduler - DeltaSpike @Scheduled が起動しない
@Scheduled で注釈を付けたジョブがタスクを開始しません。Wildfly 10 を使用しています
deltaspike-scheduler-module 1.5.3
石英 2.2.2
クォーツだけでも問題なく動作します。
私の実際のコードの問題:
どんな助けでも大歓迎です。
PS: Jboss EAP のこのコードは動作します
java - Apache deltaSpike スケジューラ モジュールの統合
スケジューラを作成しているときに、CDI インジェクションを使用できないことがわかりました。いくつかの調査の後、API deltaSpike のスケジューラ モジュールを使用して興味深い解決策を見つけました。
公式ドキュメントに記載されているすべての手順に従ったため、 pom.xml に次の依存関係を追加しました
しかし、私のjbossサーバーを起動するたびに、この例外がスローされます
例外に関して、 deltaspike の構成に関する何かを見逃していましたが、stackoverflow または他の Web サイトで何も見つかりませんでした。助けてください
java - DeltaSpike Test-Control - 永続ユニットが見つかりません
DeltaSpike Test-Control Module を使用して、開発中の新しい Maven アプリケーションの統合テストを作成しようとしています。
Wildfly 9 インスタンスにデプロイされています
簡単なテストケース:
私は次のようなpersistence.xml
内部を持っていsrc/test/resources/META-INF
ます:
エンティティ マネージャーは、CDI プロデューサー メソッドによって公開されています。
問題は、EntityManagerFactory
作成時に が null のままであることです。EntityManager
どんな助けでも大歓迎です。
jpa - Deltaspike @Transactional が機能していません
Seam から CDI への移行に取り組んでいます。データベース トランザクションには、Deltaspike、Javaee6 を使用しています。Deltaspike with JTA ドキュメントに記載されている指示に従いました。
persistence.xml
ResourceProducer.java
Deltaspike の @Transactional アノテーションを使用して値をデータベースに保存しようとしています。エラーは発生していませんが、値がデータベースに保存されていません。
誰も同じ問題に直面していますか?この問題を解決する方法を教えてください。私が見逃した設定はありますか?