Wie kann man auf Request-Header in der WriterInterceptor-Schnittstelle in JAX-RS zugreifen?
%Vor%Kompletter Code unten:
%Vor% Sie können einfach HttpHeaders
injizieren. Es wird ein Thread-lokaler Proxy sein, wenn es injiziert wird, also ist es threadsicher.
Es hat Methoden
String getHeaderString(String name)
List<String> getRequestHeader(String name)
MultivaluedMap<String,String> getRequestHeaders()
Wahrscheinlich nicht die beste Lösung, aber Sie können Ihren Interceptor mit der Implementierung von ReaderInterceptor beauftragen. Dort können Sie Header erhalten und sie in ThreadLocal Variable speichern, so dass Sie dann in WriterInterceptor
zugreifen könnenAuch wenn Sie eine Annotation-basierte Konfiguration haben, können Sie versuchen, ContainerRequestContext mit einer @Context Annotation zu injizieren
Die Context-Injektion wird pro Anfrage injiziert, siehe Javadocs .