Application コンストラクター (ResourceConfig から継承するもの) で、Jersey アプリケーションのいくつかのコンポーネントを初期化しようとしています。このように見えます
public Application(@Context ServletContext context,
@Context ServiceLocator locator)...
任意の時点でロケーターを使用しようとすると、locator.create(MyThing.class) メソッドを使用して AbstractBinder に登録したもののインスタンスを作成できません。
@inject フィールド アノテーションを介してリソース クラスに適切に注入されるため、それらが正しくバインドされていることは確かです。
違いは、Jersey/HK2 フレームワークがリソース クラスをインスタンス化していることです (それらはパッケージ スキャン パスにあるため、予想どおりです) が、コードを介して ServiceLocator を活用できないようです。
私の最終的な目標は、 @Inject 属性を持つ他の非ジャージー クラスを注入することです。構成されたデータベース アクセス レイヤーを挿入する必要があるワーカー クラスがあります。私は言いたい
locator.Create(AWorker.class)
そして注射します。
Binder に既に登録/バインドしたすべてのものを挿入する実際の ServiceLocator を取得するにはどうすればよいですか? (または、ServiceLocator 以外のものを使用する必要がありますか?)