私はClientRequestFilterを実装する@Providerを持っています。プロバイダ自体はまったく発見されません。私が手動で登録すると、それが発見されます。JAX-RS ClientRequestFilterプロバイダにCDI依存関係を挿入する方法
ClientBuilder.newBuilder().register(Somefilter.class);
このように、CDIはSomefilterに依存関係を挿入しません。
- AS:WildFly 10
- JAX-RS:(WildFlyに建て)RESTEasyの
私Somefilterクラスのコードは次のようになります。
@Provider
public class Somefilter implements ClientRequestFilter {
@Inject
private AccountService accountService;
@Override
public void filter(ClientRequestContext requestContext) throws IOException {
System.out.println(accountService);
}
}
アプリケーションもContainerRequestFilterを実装するいくつかのクラスを使用して、@Application注釈で構成サーバ部分を有しています。これらはResteasyによって発見され、CDI注入作業さえも発見されています。
質問がだから、どのようにしてclient-api関連のプロバイダにCDI依存関係を注入させることができますか?
このアプローチは機能します。ありがとうございました。 –
リクエストごとにインスタンス化されたフィルタをどういうわけかできますか? –
フィルタが '@ RequestScoped'であるとします。 –