我有一个实现了ClientRequestFilter的@Provider。但是这个提供者本身并没有被发现。当我手动注册它时,它就会被发现。
ClientBuilder.newBuilder().register(Somefilter.class);
然而,这种方式下,CDI不会向Somefilter注入依赖项。
- AS:WildFly 10
- JAX-RS:Resteasy(内置于WildFly中)
我的Somefilter类的代码如下所示。
@Provider
public class Somefilter implements ClientRequestFilter {
@Inject
private AccountService accountService;
@Override
public void filter(ClientRequestContext requestContext) throws IOException {
System.out.println(accountService);
}
该应用程序还具有一个服务器部分,使用@Application注释进行配置,并使用一些实现ContainerRequestFilter的类。这些由Resteasy发现,甚至CDI注入也可以工作。
因此问题是,如何使客户端API相关提供者注入CDI依赖项。
@RequestScoped
。 - Harald Wellmann