問題タブ [weld-se]
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.
maven - 複数のモジュールを使用した、Weld-se CDI と intellij のアイデア
Mavenによって構築された3つのjar(A、B、C)から構築された単純なスタンドアロンアプリケーションを開発している場合があります。この jar のそれぞれは、intellij のアイデアの個別のモジュールです。
jar A は、jar B および C に依存しています。jar A は、weld-se コンテナーを開始し、それ自体および他の jar から Bean をロードします。
これで、すべての jar がビルドされ、maven/cmd から開始されたときに完全に正常に動作します。しかし、intellij から起動すると、beans.xml が META-INF に正しく配置され、META-INF がターゲット ディレクトリにコピーされていても、weld-se は他のモジュールから Bean を見つけることができません。
この問題は、IDEA がビルドされた jar ではなく、アプリケーションの起動時に (管理対象モジュールごとに) ターゲット/クラスをクラスパスに配置するために発生します (そのため、ソースへの更新は、プロジェクトの作成後にすぐに取得されます)。
IDEA でこのような構成で開発するための回避策はありますか??? IDEA 12 を使用していますが、問題はないと思います。
war アーカイブのアーティファクトを構築するのは難しい場合があることを知っています。モジュールを除外し、inetllij に強制的に jar をロードさせてアーカイブする必要がありました。でもここではできません。
どんな助けでも大歓迎です!
java - CDI: JUnit テストから呼び出されたときにインターセプターが呼び出されない
JBoss のドキュメントに従ってインターセプターを作成しました。
インターセプターをテストするには、次のようにします。
ここで、WeldJUnit4Runner クラスを使用して、単体テストでこのインターセプターをテストしたいと思いました。
期待される出力はもちろん
しかし、代わりに、出力は
主な問題は、Bean をテストに注入する場合にも当てはまることです。呼び出した Bean の最初のメソッドはインターセプトされますが、このメソッドが別のメソッドを呼び出すと、インターセプターは呼び出されません。
どんなアイデアでも大歓迎です!
@adrobisch の提案に従ってコードを変更しようとしましたが、これは機能します。
出力は(予想どおり)
ただし、以下は機能しません。
ここでの出力は
ただし、これは仕様によるようです。今はすべて順調です。
java - スレッドから Bean を呼び出すときにスコープ タイプ javax.enterprise.context.RequestScoped のアクティブなコンテキストがありません
Weld-SE 2.1.2.Final を使用して Bean を取得し、それをスレッドから呼び出すと、次の例外が発生します。
スレッド「メイン」org.jboss.weld.context.ContextNotActiveException での例外: WELD-001303: スコープ タイプ javax.enterprise.context.RequestScoped のアクティブなコンテキストがありません
私の Bean には @RequestScooped のアノテーションが付けられています。@ApplicationScoped にアノテーションを付けると問題なく動作しますが、@RequestScooped を維持する必要があります。
ここに再現者があります:
この動作に遭遇しましたか? これを機能させるためのアイデアはありますか?
jakarta-ee - インターセプタークラスが見つからないためにgradleテストが失敗する
私はBeginning Java EE 7の演習に取り組んでいますが、Mavenの代わりにGradleを使用するようにそれらを適応させようとしています。第 2 章のインターセプターの演習では、次の build.gradle を作成しました。
著者の GitHubから直接 src dir を使用しているだけです。 ./gradlew -x test build
成功しjava -jar build/libs/gradleTest.jar
、期待される出力が得られます (ただし、多くの予期しない警告も吐き出します)。 ./gradlew test
ただし、次のエラーで失敗します。
beans.xml とすべてのクラス ファイルは、GitHub の作成者のリポジトリから直接取得したものであり、上記のエラーがそうではないと言っているように見えます。beans.xml はインターセプターを宣言し、インターセプター クラスには @Interceptor のアノテーションが付けられます。
私の推測では、問題は私のgradleビルドにあります。誰が問題が何であるかを見ていますか?