問題タブ [weld]
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.
seam - Seam3 と Weld CDI は同じものですか?
ばかげた質問のように思えるかもしれませんが、私は本当に混乱しています。Seam 3 と Weld CDI は同じものですか? 「CDI (Weld) / Seam 3」に言及している投稿をいくつか読んでいますが、それらは同じものと見なす必要がありますか?
jakarta-ee - Java EE で CDI を使用して main() を記述する方法は?
実行したい非クライアント アプリケーションがあります。クライアントはありませんが、HTTP 呼び出しを行い、他のサービスのクライアントとして機能します。おそらく数時間または数日実行されます (ただし、定期的な実行は必要ありません。1 回だけ実行するだけです)。
標準の Context Dependency Injection (CD) と標準の JAX-RS クライアント (Java EE 7 以降の新機能) の利点があるため、Java EE 7 コンテナーで実行したいと考えています。JMS、JPAなどのサービスがあるのもうれしい。
問題は、標準的な方法で main メソッドをどのように記述/注釈付けするかです。@Inject
そのようなメソッドはすぐに返さなければならないので、メソッドをオンにするのは良くありません。@Schedule
プログラムで現在のシステム時間を決定しない限り、定期的に実行されるため、理想的ではありません。
私が思いついた最善の方法は、メソッドにワンショットを設定しTimer
、@Inject
メイン メソッドに で注釈を付けること@Timeout
です。
どういうわけか、これは少しもろく、またはエレガントではないようです。サービスを開始するためのより良い標準的な方法はありますか? それを開始して開始させるだけの注釈はありますか?
さらに、アンデプロイ時にサービスを中断してシャットダウンするための標準的な最良の方法は何ですか?
java - 溶接 CDI 環境での並列 Web サービス アクセス
Tomcat で JSF 2 と Weld Cdi を使用して Web フロントエンドを開発しています。
現在、リクエスト時間を最適化するために複数の Web サービスを並行して実行する際に問題が発生しています。
ユーザーは、リストから複数の項目を選択できます。
選択された項目ごとに、リスト キーをパラメーターとして使用して、プロセスが 1 つの Web サービスからその情報を収集します。
私の現在のアプローチは、Bean に注入される Web サービス ポート インターフェイスを返す Producer を使用することです。Bean は、選択されたキーごとにループでこの Web サービスを呼び出します。
高速化するために、Future を返す ExecutorService と必要な数のワーカーを使用しようとしました。
この構成の問題は、ワーカーにサービス ポートを挿入できないことです。これは、ワーカーが管理されていないためです。サービス ポートを手動で作成することは機能しますが、プロデューサー クラスを無視するため、高く評価されません。
また、テスト時に、定義済みの結果セットを提供するダミーのサービス ポートを挿入することはできません。
tomcat-weld 環境での並列実行について何も見つからなかったので、私のアプローチに何か問題があるに違いありません。
このような状況を解決するための正しいアプローチは何ですか?
編集:私が試したことをより明確にするために...
}
このようにすると、ワーカーは管理されません。
java - CDI を使用したテスト、Bean のモック
CDI でどのようにテストを行っているのか疑問に思っています。注入中のクラスのモック。
クラスがある場合:
My ItemProcessor をテストしたいときに、テスト中に ItemDao クラスをモックしたい場合はどうすればよいですか?
cdi - WicketTester と CDI-Unit を使用した単体テストは Eclipse で機能しますが、Maven ビルド中に失敗します。私は何が欠けていますか?
CDI-Unit を使用して、依存関係の挿入に CDI を使用している Wicket コンポーネントをテストしようとしています。テストは Eclipse で完全に機能しているように見えますが、Maven ビルド中に失敗し、ヒントや何が問題なのかを見つけることができません。
シンプルな抽象 WicketPanel を作成しました
そして注射工場:
次に、CDI-Unit を使用して単体テストを作成します。
TestPanel は含めていませんが、非常に単純です (そして多かれ少なかれ空です)。
これを Eclipse で実行すると、テストは緑色でパスします。
これをMavenで実行すると、次のようになります。
私が間違っていることの手がかりはありますか?
java - Tomcat 7 コンテナーを使用した Weld 2.0 プロジェクトの構成エラー
tomcat7 で戦争プロジェクトを展開しようとすると、次の問題/エラーに直面しています:
(溶接サーブレット 1.1.12 final でのみプロジェクトをデプロイできました)
情報: validateJarFile(C:\Java\workspace_plataforma_arq.metadata.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps\educacao_empreendedora\WEB-INF\lib\jboss-el-api_3.0_spec-1.0.0.Alpha1 .jar) - jar がロードされていません。サーブレット仕様 2.3 のセクション 9.7.2 を参照してください。問題のあるクラス: javax/el/Expression.class 2013 年 6 月 11 日午後 4:47:05 org.apache.catalina.loader.WebappClassLoader validateJarFile 情報: validateJarFile(C:\Java\workspace_plataforma_arq.metadata.plugins\org.eclipse.wst .server.core\tmp0\wtpwebapps\educacao_empreendedora\WEB-INF\lib\weld-servlet-2.0.1.Final.jar) - jar がロードされていません。サーブレット仕様 2.3 のセクション 9.7.2 を参照してください。問題のあるクラス: javax/el/Expression.class
POM:
jakarta-ee - CDI - 継承: 基本型のトリガー プロデューサー
ある種のプロデューサーファクトリーパターンを実装しようとしています。
派生型を注入しているときに、基本型のプロデューサー メソッドをトリガーすることは何とか可能ですか?
次のインターフェイスを想定しています。
このプロデューサーをトリガーしたい:
この注入ポイント:
目的は、マーカー インターフェイス (この場合はサービス) を追加することで、さまざまな種類のサービスに対して 1 つのプロデューサー ファクトリを用意することです。
私を助けてくれてありがとう
アップデート:
LightGuards ソリューションを試し@Typed
、AService 実装に追加しました。
残念ながら、満たされていない依存関係のエラーが発生します。CDIは、注入ポイントのService
プロデューサーを呼び出しません。AService
確かに、これは型安全性の理由から理にかなっています。Service
しかし、プロデューサーの呼び出しを強制する方法はありますか?