問題タブ [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.

0 投票する
2 に答える
2781 参照

java - CDI ビュー スコープ Bean (Weld、Seam 3) でオーバーライドされた @PostConstruct が 2 回呼び出される

@PostConstruct基本クラス階層での重複呼び出しに問題があります。

最初の基本クラスは次のとおりです。

具体的なサブクラスは次のとおりです (init() が super.init() を呼び出すためにオーバーライドされていることに注意してください)。

一部の (表示されていない) ページがレンダリングされると、pseudoEntityManagerBean がインスタンス化されますが、 @PostConstruct2 回呼び出されます。これは出力です:

具体的なサブクラスのオーバーライドinit()メソッドをコメント化して、スーパー クラスのメソッドが1 つだけになるようにすると、次の出力が生成されます。@PostConstruct

Q :

現在の CDI 仕様による正しい動作は何ですか? (誰かを参照しますか?)

ノート:

調査中に、このメーリングリストの会話も見つけました。

http://list-archives.org/2012/10/11/cdi-dev-lists-jboss-org/postconstruct-on-inherited-class/f/4426568582

会話の中で、「サブクラスの @PostConstruct メソッドのみを呼び出す必要がある」と言う専門家もいます。よく読むと、Weld 1.1.5 以降に解決されたと言われている Weld バグへのリンクがあります。

https://issues.jboss.org/browse/WELD-1225

これは本当に修正されましたか?私が得た出力によると、そうではありません。

環境: (GlassFish 3.1.2 で) CDI @ViewScoped が正しく動作するように Seam 3 と共に 1.1.8 を連結します。

0 投票する
1 に答える
530 参照

java-ee-6 - CDI インジェクションがマルチモジュール プロジェクトの「WELD-001408」を発生

いくつかの Web アーティファクト (.war) を含むプロジェクトがあり、単純な POJO を挿入する際に問題に直面しています。次のコードは、最も単純な作業ケースを表しています。

.war (WAR1)

.war (WAR1) の POJO

同じ POJO (MyPojo) がパッケージ化された Web アーティファクト (.war --> WAR2) をもう 1 つ追加すると、問題が発生します。意味的には、外部アーカイブ (.jar) ではなく、各 Web アーティファクトに POJO が必要です。基本的に、追加された最新のコンポーネント (WAR2) は WAR1 と同じです。つまり、マルチモジュール プロジェクトが存在するかのようにシミュレートします。実行時に、モジュールを使用しようとすると、コンテナーで次のエラーが発生します。

いくつかのシナリオの詳細:

  1. WAR2 を削除すると、WAR1 によるインジェクションが機能し始めます。
  2. 両方の成果物 (WAR1 と WAR2) には、同じ POJO と beans.xml (/WEB-INF) があります。

私が見逃している点はありますか?私が必要とするのは、たとえば「*.Helper」のようなクラスを注入する可能性だけです。私が知っているように、CDI ではプリミティブ型でさえも注入できます。

  • JDK1.7
  • JBoss 6.1.0
  • 溶接 1.1.Beta2
0 投票する
1 に答える
710 参照

java - CDI-Weld を使用して継承されたプロパティ値を注入する

私は基本的な Swing アプリケーションを開発していますが、依存性注入のために常に Spring Ioc (xml 構成を使用) を使用する傾向がありますが、CDI-Weld を試してみたいと思っています。Spring で次の構造を作成するSchoolBoyと、コンテナは と を作成しUniversityStudent、それぞれにその名前を付けます。

@Inject @Config注釈を使用して CDI で同様のことを行うことが可能であることを確認しました。ただし、これを見るたびに、それらはプロパティ自体の上にあり、継承されたプロパティであるため、ここのクラスに対してそれを行うことはできません。Student各サブクラスを達成して独自のname値を取得するにはどうすればよいですか?

アップデート

その値をサブクラスに注入することは、必ずしも構成ファイルにそれらをハードコーディングすることを意味しません。プロパティ値自体は、 .propertiesファイルから取得できます。ただしStudent、レガシー プロジェクトに含まれるエッジ ケースがあり、そこからクラスを継承してそのプロパティを注入したい場合、解決策は何でしょうか?

0 投票する
1 に答える
468 参照

spring - Spring 3 で WildFly 8 を起動するとエラー Weld が発生する

Jboss-as 7.1.1.Final から Wildfly 8.0.0.Alpha4 にアプリケーションを更新すると、修正できないエラーが発生しました。

このエラーは、以前のバージョンの JBoss では 1.1 であった org.jboss.weld モジュールの新しいバージョンに関連していると思います。現在、この新しいバージョンの WildFly では 2.0.3 です。「JBOSS_HOME\modules\org\jboss\weld\[...]\main」にあるとおり

助けてくれてありがとう!