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

0 投票する
3 に答える
851 参照

java - Java 構成と依存性注入 (Springs IoC vs. Weld / Guice に類似)

ListCreator構成したいクラスがあるとしましょう。ソート順とテーブルの出力方法を教えてもらいたいです。したがって、ブール値のsortDescendingプロパティと、TableWriterによって実装されるインターフェイスがありますPdfTableWriter(ただし、によってもXlsTableWriter)。この例では、構成と DI は密接に関連していると思います。このSpring(疑似)の例のようなものを書きたいと思います:

現在、Spring はこれを実行できますが、Weld & Guice は実行できないようです。たとえば、Weld を使用すると、beans.xml で代替を選択できますが、アプリケーション全体に対してのみ選択できます。ListCreator1 つを PDF 用に、もう 1 つを XLS 用に同時に使用したい場合はどうすればよいですか?

現時点では Weld と Guice の範囲がわかりません。構成の多くが許可されていないように見えるからです。new独自のファクトリを作成または実装する必要性を軽減するだけのようです。たとえば、EJB インジェクションは同じことを行いますが、これは素晴らしいことですが、構成部分全体はどこにありますか (実際に必要なパラメーターを使用してどのインスタンスをどこで選択するか)。

要点を言えば、Spring はオーバーヘッドのように見えるので使用したくありません。私はむしろ、JSR によって指定された、せいぜいクリーンで小さいものを使用します。助言がありますか?

0 投票する
5 に答える
4601 参照

jsf - 検証エラー後にjsf viewparamが失われました

私は次の問題に直面しています: 1 つのページで、アプリケーションのすべてのユーザーを一覧表示し、それぞれに「編集」ボタンがあります。これは、?id=<userid>.

編集ページには<f:viewParam name="id" value="#{editUserBean.id}"/>in メタデータがあります。
入力ミスをして送信した場合 (CDI Weld Bean 検証を使用)、ページは再び表示されますが?id=...、URL の が失われ、編集中のユーザーのユーザー ID が失われます。

JSF validation error, lost valueで説明されている同様の問題を見てきましたが、inputhidden (またはさらに悪いことに、過剰に見える tomahawk) を使用したソリューションには、多くの醜いコードが必要です。

CDIで「会話」を追加しようとしましたが、機能していますが、やり過ぎのように見えます。

検証エラーが発生した場合にビューパラメーターを保持するための簡単なソリューションが JSF に存在しますか?

【私の環境:Tomcat7 + MyFaces 2.1.0 + Hibernate Validator 4.2.0 + CDI(Weld) 1.1.2】

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

java - カスタム エラー ページが Weld と Tomcat7 で機能しない

私の Web アプリケーションでは、カスタム エラー ページを使用しようとしています。
ただし、これは Weld では機能しません。カスタム エラー ページを取得する代わりに、アプリ内の存在しないページに移動すると、Weld からの例外が表示されます。

これはTomcatのバグだと思いました:

https://issues.apache.org/bugzilla/show_bug.cgi?id=50789

ただし、v.7.0.9 で修正されています。

私のweb.xmlからの抜粋:

Tomcat 7.0.19、JSF 2.0、および Weld 1.1.2 を使用しています。
何が起こるかについてのアイデアはありますか?

0 投票する
3 に答える
10849 参照

jsf-2 - Richfaces 4 a4j:commandLinkアクションがrich:popupPanelで起動しない

rich:popupPanelにa4j:commandLinkがあるのに問題が発生しているようですが、アクションが実行されません。xhtmlは次のようになります。

また、マネージドBeanは次のようになります。

マネージドBeanを@ViewScopedにしました。

また、commandLinkの周りに追加しようとしました<h:form>が、これはそれがない場合よりもさらに少なくなります。それは、実際には、commandLinkが<h:form>popupPanelを開いたリンクが置かれている内部にあるためだと思います。

とにかく、誰かがアクションが発火しない理由の方向に私を向けることができますか?

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

events - メンバーを持つ修飾子で CDI イベントを動的に発生させる

JBoss AS6のバックエンドサービスでCDIイベントを使用しようとしています-理想的にはコードを最大限に再利用します。

ドキュメントから、メンバーを持つ修飾子を使用して作成する必要がある修飾子注釈クラスを削減できることがわかります。

私はこれを観察することができます

ここまでは順調ですね。ただし、必要なクラスの数をさらに削減するために、スローされるイベントの修飾子が動的である 1 つの EventFirer クラスが必要です。メンバーのない修飾子では問題ありません:

その後、次のように呼び出されます

しかし、修飾子にメンバーが必要な場合はどうでしょうか? AnnotationLiteral のコードを見ると、それは確かにメンバー用に設定されており、クラス要素のコメントには次の例があります。

これは私には理にかなっています-注釈インターフェースの value() メソッドをオーバーライドしています。しかし、私がこれを自分で試したとき:

私は例外を受け取ります

誰かが私が間違っていることを見ることができますか? MemberQualifierEventManager は、DynamicEventFirer を呼び出してイベントを発生させる ApplicationScoped Bean です。

ありがとう、ベン

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

java - CDI: 同じ Bean のインターセプトされていないメソッドからのインターセプトされたメソッドのネストされた呼び出し - 呼び出す必要がありますか?

メソッドがあれば

次に、最初のメソッドにも @JpaTransactional アノテーションを付ける必要がありますよね?

Bean が独自のインターセプトされたメソッドを呼び出すと、インターセプターがトリガーされないことがわかりました。これは、呼び出されたプロキシではなく、「実際のインスタンス」自体であるため、プロキシを通過しないためだと思います。

これは仕様/ドキュメントでカバーされていますか? まだ見つかりませんでした。すべてのパブリック メソッドにアノテーションを付けた場合、今後インターセプターが複数回呼び出されないようにするためです。

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

seam - Weld アーキタイプ vs Seam Forge

Seam 3 を使用して新しいプロジェクトを構築しています。Weld アーキタイプと Seam Forge の違いがわかりません。どちらも、最初に単純なプロジェクト テンプレートを作成するのに役立ちます。

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

java - ディスポーザーはいつ実行されますか?

MyResourceManager を生成する pojo プロデューサーがあります。

@TraderResouceManager @RequestScoped public MyResourceManager(){ ... ... }

MyResourceManger は SLSB に注入されます

@inject @TraderDB プライベート MyResourceManager rm;

ディスポーザーは次のとおりです。

public void close(@Disposes @TraderResouceManager MyResourceManager rm) { rm.close(); }

質問

close() はいつ実行されますか?

トランザクションを閉じる前ですか、それともトランザクションを閉じた後ですか?

編集:質問にはおそらく追加の説明が必要です。データベース接続の類推を見てみましょう。

リクエストごとに新しい接続を作成する pojo を使用して、@RequestScoped で @producer を作成します。

必要なのは、リクエストの最後に接続を破棄することです。この接続は他の Bean によって共有されます (現時点では SLSB)。特定のリクエストでは、トランザクション内で実行されている多くの Bean が含まれる場合があります。したがって、すべてのトランザクションが論理的に閉じられた後にのみ、接続を閉じる必要があります。

質問 コンテナー管理トランザクションを使用する場合、上記のコードでこの動作を実現できますか?

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

java - Glassfish v3デプロイメントのCDIの適格な候補をどこに配置できますか?

を含む1つのjar(a.jar)にコードがあります@Inject X x

別のjar(b.jar、有効なBeanアーカイブなど)での実装でインジェクションを満たしたいです。

私の理解では、a.jarとb.jarはCDIに関して独立しているため、別々のWARスタンドアロンアーカイブにデプロイすることはできません。Glassfishがすべてのデプロイメントに提供するlibフォルダーにb.jarを配置できる場合があります(ただし、これは「純粋なJava 6 EE」であり、戦争や耳と同じようにデプロイできないことを意味しますか?)。libに配置されたEARでa.warまたはa.jarと一緒にb.jarを提供できる場合がありますが、これには慣れていません。

私の質問は、Glassfish(現在は3.0.1ですが、より適切に機能する場合は3.1.1を検討します)がこの依存関係を正しく解決するように、a.jarとb.jarをデプロイするためのオプションはどれですか?網羅的なリストを探しています。

(編集:b.jarをa.jarとは独立してデプロイできるソリューションが望ましい)

0 投票する
3 に答える
4645 参照

dependency-injection - クラスパスのスキャンは、Weld で制御できますか?

Weld-SE (Java SE) で遊んでいて、クラスパスに多数の JAR があると、JVM の起動時間が数秒かかることに気付きました。

Apache AntやAspectJのようにパッケージパターンやパスパターンでスキャンパスを指定・制限する方法はありませんか?

PS: Weld フォーラムへの登録が機能しません。「あなたのパスワードは簡単です」と表示され続けます