問題タブ [hk2]

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 投票する
1 に答える
55 参照

java - HK2 は FieldInterceptor をサポートしていますか?

私は掘り下げてきましたが、フィールドでの AOP の実行をサポートしていないようです。ここで例を見てきましたが、InterceptionService は FieldInterceptor をサポートしていないようです。カスタム フィールド アノテーションを使用して、簡単な Bean 検証を行いたいと考えていました。

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

java - Tomcat での hk2 依存性注入

私は、私の小さな Web アプリケーションで何らかの (c)di 作業を行うために懸命に努力しています。Weld の使用をあきらめ、現在は hk2 を試しています (すでに jersey 2 で使用されています)。何かを注入しようとする私のサービスは次のとおりです。

必要かどうか@ManagedBeanはわかりません。問題は次のとおりです。

したがって、注入は単に機能していません。ここで説明されているようにDIを設定しました(受け入れられた回答を参照)。私の場合、バインダーは次のようになります。

データを注入するコンストラクターがあるため、ExcelReport のバインドは必要ないと思います。しかし、それはどちらの方法でも機能していません。

私の「メイン」はこれ

および web.xml:

では、DI を適切にセットアップする方法 (私の 3 回目の試行は Guice になります)。

UPDATE 必要な依存関係についてもわかりません。現在、これを含めました(ヒントに基づいて更新):

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

java - インビルド インジェクションによるジャージー カスタム メソッド パラメーター インジェクション

こんにちは私は dropwizard を使用してアプリケーションを構築しています。つまり、Jersey 2.16 を REST API フレームワークとして内部的に使用しています。

すべてのリソースメソッドのアプリケーション全体について、いくつかの情報が必要なので、その情報を解析するために、以下のようなカスタムフィルターを定義しました

テナント ファクトリを以下に定義します。

私は実際にメソッドを実装していませんが、構造は上にあります。TenantparamResolver もあります

今私のリソースメソッドで私は以下のようにやっています

これが私がアプリケーションを構成する方法です

問題はアプリケーションの起動中にあり、エラーが発生しています

非常に長いスタックエラースタックと説明があります

以下は、ユーザー pojo の宣言署名です。

public class User extends com.company.models.Model {

User クラスに注釈はありません。モデルは、long 型のプロパティ ID を 1 つだけ定義し、モデル クラスに注釈を定義しないクラスです。

上記の create resource メソッドから User パラメータを削除すると正常に動作し、TenantParam を削除すると正常に動作します。この問題は、User と TenantParam の両方を使用した場合にのみ発生します

  1. ここで何が欠けていますか?このエラーを解決するには?

編集済み

2 つのカスタム メソッド パラメータ インジェクションを試しましたが、これも機能しません

  1. ここで何が欠けていますか?これはジャージの制限ですか?
0 投票する
1 に答える
1512 参照

java - HK2 IterableProvider という名前のメソッドが実装を見つけられない

2 つのサービスがバインドされたコントラクトを挿入しようとすると問題が発生します。

私はジャージーを使用しておりResourceConfig、アプリを構成するために拡張しています.2つの異なる実装(クラスFooImpl1FooImpl2)を同じコントラクト(インターフェースFoo)にバインドし、それらを異なる方法でランク付けしています。これらの各実装には、@Namedとその名前の注釈が付けられています。

コントローラーの 1 つで、両方の実装にアクセスしたいので、IterableProvider<Foo> fooProvider.

何も指定しない場合、最高ランクの実装が常に注入されます。これが私が望んでいることです。

問題は、そのうちの 1 つである具体的な実装が必要な場合に発生します。を呼び出すとfooProvider.named( nameOfTheClass ).get()、null が返されますが、fooProvider を反復処理すると、両方の実装にアクセスできるため、それらが注入されます。

誰が私が欠けている可能性があるのか​​ 考えていますか?

どうもありがとうございました。

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

jersey - hk2 を使用してカスタム ファクトリを挿入するにはどうすればよいですか?

ジャージーテストフレームワークで作業するのに苦労しています。

ルート リソースがあります。

を提供する工場を用意しましたpath

そしてバインダー。

そして最後に、私のテストクラスです。

私がテストしようとしたとき、私は得ました。

私は何を間違えましたか?