Mit JAXRS-2.0 (Jersey 2.2, speziell) Ich versuche, einen Anfrage Interceptor auf eine bestimmte Ressource-Provider-Klasse (die in einer 3rd-Party-Bibliothek ist) anzuwenden, und ich mache es offensichtlich falsch. Ich bekomme den Fehler unten - ich bin etwas verwirrt über die Ursache. Der Nettoeffekt ist, dass der Interceptor bei jeder Anfrage an jeden Provider anstelle des 1 Providers aufgerufen wird. Dies ist der Fehler:In JAXRS wenden Sie einen Container-Anfrage Interceptor nur an einen bestimmten Provider
2017-11-26 10:43:51.061 [localhost-startStop-1][WARN][o.g.j.server.model.ResourceMethodConfig] - The given contract (interface javax.ws.rs.container.DynamicFeature) of class com.idfconnect.XYZ provider cannot be bound to a resource method.
Die Interceptor-Klasse ist definiert als:
@Provider
public class XYZ implements WriterInterceptor, DynamicFeature {
In meinem ResourceConfig ich die Abfangjäger für den spezifischen Anbieter Registrierung wie folgt (Ich vermute, das ist, wo ich habe Abwegen):
@ApplicationPath("service")
public class MyApp extends ResourceConfig {
public MyApp() {
ResourceConfig rc = register(SomeThirdPartyResource.class);
rc.register(XYZ.class);
...
Kann mir jemand helfen, herauszufinden, wie man die Abfangjäger SomeThirdPartyResource Klasse nur zu binden?
Das funktionierte p perfekt, danke! Ich habe das DynamicFeature in eine separate Klasse vom Interceptor Provider aufgeteilt und jetzt ist alles in Ordnung –