Einfügen eines benutzerdefinierten Antwortheaders in RESTEasy JAX-RS

7

Ich habe einen RESEasy (JAX-RS) -Server mit ca. 60 Diensten (bisher). Ich möchte automatisch einen benutzerdefinierten Antwortheader für Provider-Anrufer mit der Server-Build-Zeit einfügen: X-BuildTime: 20100335.1130 .

Gibt es eine einfache Möglichkeit, dies zu tun, ohne jeden meiner Dienste zu ändern?

Ich versuche eine Klasse zu verwenden, die org.jboss.resteasy.spi.interception.PostProcessInterceptor mit den Annotationen @Provider und @ServerInterceptor implementiert, aber ich kann nicht herausfinden, wie ich die ServerResponse modifizieren kann, die an meine postProcess() Methode übergeben wird.

    
Ralph 25.03.2011, 15:33
quelle

4 Antworten

6

Ich denke, die Verwendung von javax.servlet.Filter wird eine viel einfachere Lösung sein:

%Vor%

Konfigurieren Sie es in web.xml für die relevanten URLs, und Sie sind fertig.

    
Tarlog 25.03.2011, 16:51
quelle
11

Obwohl MessageBodyWriterInterceptor den Trick macht, ist es besser, PostProcessInterceptor zu verwenden, da es Antworten abfängt, die MessageBodyWriters nicht aufrufen (z. B. Response.created(URI.create("/rest/justcreated")).build() ).

Weitere Informationen finden Sie in der offiziellen Dokumentation .

%Vor%     
acdcjunior 13.03.2013 03:56
quelle
2

Sie können den Header auch über MessageBodyInterceptors ändern

(siehe das Beispiel am Ende von Abschnitt 30.1)

%Vor%     
Palani 06.07.2012 14:10
quelle
2

Wie wäre es mit javax.ws.rs.core.Response; Auf diese Weise können Sie die Kopfzeile an der Stelle festlegen, an der Sie die Antwortdaten erstellt haben.

%Vor%     
user3580809 28.04.2014 10:02
quelle