問題タブ [jboss-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.
java - 開発中に新しく追加されたクラスを継続的にスキャンするようにjbossweldを取得できますか?
溶接を使用してTomcat6.0.29でJSF2プロジェクトを設定しています。また、jrebelを使用しています-それが違いを生むかどうかはわかりません。
JRebelをテストすると、コンテナーの開始時に存在していた更新クラスが正常に処理されていることがわかります。
ただし、新しく定義されたCDIコンポーネントクラスを追加し、アプリサーバーを再起動せずにアプリを再展開すると、再起動するまでファセットからアクセスできません。JRebelがクラスをロードしているように見えるので、weldがそれをbeanmanagerに登録していないと思います
CDIは起動時に構成をフックすることを意図していることを理解していますが、JSFが変更されたファセットテンプレートを取得する開発モードを備えているのと同じように、継続的なスキャンを有効にするために何らかの開発スイッチを用意するとよいでしょう。
これとJRebelが提供する機能は、生産性を大幅に向上させます。
これはできますか?溶接ドキュメントをざっと見てみましたが、何も見つかりませんでした。
ありがとう。
java-ee-6 - CDI-コンテナイベントの監視
CDIWebアプリケーションの起動イベントとシャットダウンイベントの両方を監視しようとしています。これらのイベントをリッスンするApplicationScopedBeanがあります。
ログに何も表示されません。
私は何が欠けていますか?
java - CDIをJavaSEに向けて減らすことはできますか?
JSR-330の依存性注入は、JavaSE環境とJavaEE環境の両方に適用できますが、JSR-299のタイトルは「JavaEEプラットフォームのコンテキストと依存性注入」です。
厳密にJavaEE指向の機能を除いて、Java SEでもどのCDI機能が意味をなしますか?利用可能な例はありますか?ありがとう!
[改訂]これがJSEのWeldです。
java-ee-6 - アプリケーション内のすべての CDI-Bean に Interceptor を使用するように構成する
JEE6-CDI-webapp で、次のようにセキュリティ インターセプターを宣言しました。
そして、beans.xml 内で宣言します。
それを使用するには、それに応じて CDI Bean に注釈を付けます。
Now i ask myself, do i have to annotate ALL my CDI-Beans to use this interceptor? Or is there a way to configure the beans.xml to use the interceptor for all my CDI-beans, without having to declare it for every single bean?
asynchronous - 溶接 - 非同期イベント オブザーバー
Weld を使用してイベントを観察しています。オブザーバーが非同期かどうかを指定する方法があると思いましたが、その注釈やドキュメントが見つかりません。
オブザーバーを非同期にすることはできますか?もしそうなら、それを実現するにはどうすればよいですか?
tomcat - Tomcat で単純な POJO クラスを使用して CDI (Weld) を使用する
2日間のデバッグと試行の後、解決策を尋ねる以外に考えがありません.
Tomcat WebApp で CDI (JEE6 上) を使いたいのですが、単純な単純な古い Java オブジェクト (まだ) しかありません。私の知る限り、POJO Java クラスを他の POJO Java クラスに注入することは簡単に可能ですか?!
これが私のサンプルクラスです
- クラス ToBeInjected (アプリケーション スコープ / シングルトン)
- クラス InjectingExample
- ServletListener "ApplicationContextListener"
アプリケーション スコープ (シングルトン)クラス "ToBeInjected" :
上記のクラスを注入するクラス「InjectingExample」 :
最後に、InjectingExampleのインスタンスを作成し、sayHello() を呼び出すContextListener があります。
次のWEB-INF/web.xmlで Tomcat 6 を使用しています。
そしてMETA-INF/context.xml :
最後に、「weld-tomcat-support-1.0.1-Final.jar」を ${CATALINA_HOME}/libs にコピーしました。
Tomcat で webapp をデプロイして実行すると、クラス InjectingExample のメンバー「bean」が null (注入されていない) であるため、NullPointerException がスローされます。
私が理解している限り、これはうまくいくはずです。私が間違っている?
ここまでお気遣いいただきありがとうございます。うまくいけば、あなたが私を助けるために重要なことはすべて言及しました. それ以外の場合は、必要なものを教えてください。
最後にcataling.logのログファイル出力:
jsf-2 - @ManagedBeanの代わりにCDIを使用する:スーパークラスには引数なしのコンストラクターがないため、UnproxyableResolutionException
JSF /JavaEEアプリケーションにCDIを使用しようとしています。次のクラス階層があります。
アプリケーションをGF3.1にデプロイしようとすると、次のCDI/Weld例外が発生します。
重大:アプリのロード中の例外:WELD-001435通常のスコープのBeanクラスcom.web.AbstractCrudControllerは、引数なしのコンストラクターがないため、プロキシできません。org.jboss.weld.exceptions.UnproxyableResolutionException:WELD-001435通常のスコープのBeanクラスcom.web.AbstractCrudControllerは、引数なしのコンストラクターがないため、プロキシ可能ではありません。org.jboss.weld.util.Proxies.getUnproxyableClassException(Proxies.java:215)at org.jboss.weld.util.Proxies.getUnproxyableTypeException(Proxies.java:166)at org.jboss.weld.util.Proxies.getUnproxyableTypesException (Proxies.java:191)org.jboss.weld.bootstrap.Validator.validateBean(Validator.java:134)、org.jboss.weld.bootstrap.Validator.validateRIBean(Validator.java:148)、org.jboss。 weld.bootstrap.Validator。
基本クラスに引数なしのコンストラクターを追加しても、Weldは、finalメソッドがあるため、クラスがプロキシ可能ではないという同じ例外を除いて文句を言います。WELDがクラスの設計を変更するように強制するのはなぜですか?JSF@ManagedBeanアノテーションを使用するとすべてが正常に機能しました。
助けていただければ幸いです。ありがとう、テオ
tomcat - CDI / 溶接 Web アプリケーションに便利な環境
私は溶接が初めてで、CDI (Weld) を使用する Web アプリケーションにどのような環境が役立つかを検討しています。プレゼンテーションには JSF または Wicket を使用し、永続層 (Transaction-Management を含む) には JPA/Hibernate を使用したいと考えています。明白なシナリオは、JBoss または Glassfish アプリケーション サーバーを EJB3 を取り囲むように使用することですが、Tomcat やその他の「軽量」サーブレット コンテナーを賢明な方法で使用する機会はありませんか? それとも、EJB/Seam のサラウンドなしで CDI Web アプリケーションを開発しようとするのはばかげていますか?
ユーザーエクスペリエンスに興味があります!
java - オブジェクトのリストを CDI に挿入 (Weld)
SocialNetworkService
と呼ばれるインターフェースと、3 つの実装 - TwitterService
、FacebookService
およびがあるとしましょうFriendFeedService
。
ここで、マネージド Bean (または任意の Web コンポーネント) がメッセージを受信するたびに、それをすべてのソーシャル ネットワークで共有したいと考えています。私は試した:
しかし、うまくいきませんでした (展開エラー)。@Any
(予選にも挑戦- 同じ結果)
では、インターフェイスのすべて (または一部) の実装のリストを挿入する方法はありますか?
特定の注入ポイントに複数の Bean を含めることはできないというルールを知っています。リストを生成するプロデューサーを作成し、 を使用することでそれを達成できると思いますがInstance<SocialNetworkService>
、このタスクには多すぎるようです。
api - Weld で外部 API Bean を注入する方法 - JSR-299
Weld を使用して、自分のドメイン (ソースにアクセスできる) にあるオブジェクトを注入する方法は明らかです。@Named や @ApplicationScoped などで実装にアノテーションを付けてから、@Inject でターゲット属性にアノテーションを付けて、実装を注入します。
ただし、ソースコードにアクセスできないクラスの実装をどのように注入できるかわかりません。たとえば、ドーザーを使用しています。Dozer マッパーはインターフェイス (Mapper) に対してプログラムされており、Weld に実装 (DozerBeanMapper) を挿入させたいのですが、ソースにアクセスできないため、.jar 依存関係を使用しているため、注釈を付けることができません。
これを達成する方法についてのアイデアはありますか?