Ich habe einen @Provider, der ein ClientRequestFilter implementiert. Der Provider selbst wird überhaupt nicht gefunden. Wenn ich es manuell registriere, wird es entdeckt.So injizieren CDI-Abhängigkeit in JAX-RS ClientRequestFilter-Provider
ClientBuilder.newBuilder().register(Somefilter.class);
Auf diese Weise jedoch nicht CDI keine Abhängigkeiten in Somefilter injizieren.
- AS: Wildfly 10
- JAX-RS: Resteasy (Baujahr Wildfly)
Der Code meiner Somefilter Klasse sieht wie folgt aus.
@Provider
public class Somefilter implements ClientRequestFilter {
@Inject
private AccountService accountService;
@Override
public void filter(ClientRequestContext requestContext) throws IOException {
System.out.println(accountService);
}
}
Die Anwendung hat auch einen Serverteil, konfiguriert mit @Application Anmerkung, einige Klassen mit der Umsetzung ContainerRequestFilter. Diese werden von Resteasy und sogar CDI-Injektionsarbeiten entdeckt.
So ist die Frage, wie kann ich Client-API-verwandte Anbieter injizieren CDI-Abhängigkeiten.
Dieser Ansatz funktioniert. Vielen Dank. –
Ist es irgendwie möglich, das Filter pro Anfrage instanziieren zu lassen? –
Ich nehme an, wenn der Filter '@ RequestScoped' ist. –