Hallo,
ich bin gerade dabei eine REST Schnittstelle mit Java EE in Zusammenspiel mit Tomcat zu schreiben. Das funktioniert soweit alles ganz gut. Ich möchte nun einen Interceptor schreiben, der die JSON Response Strings manipuliert und ergänzt. Das Problem, das ich habe, ist, dass mein Interceptor nicht aufgerufen wird und ich nicht genau weiß warum. Ich schreib hier noch meinen bisherigen Source-Code und hoffe auf einige hilfreiche Tipps von euch.
JsonDataInterface.java
@NameBinding
@Retention(RetentionPolicy.RUNTIME)
public @interface JsonDataInterceptor {
}
JsonDataInterfaceImpl.java
@Provider
@JsonDataInterceptor
public class JsonDataInterceptorImpl implements WriterInterceptor {
@Override
public void aroundWriteTo(WriterInterceptorContext context) throws IOException, WebApplicationException {
OutputStream outputStream = context.getOutputStream();
String test = "TEST";
outputStream.write(test.getBytes());
context.setOutputStream(outputStream);
context.proceed();
}
}
In der Klasse, wo ich den Interceptor verwende, habe ich nur noch @JsonDataInterceptor über die Methode geschrieben aber wie gesagt aufgerufen wird leider nichts...
Ich danke euch für eure Hilfe!
Grüße
Tru5T
ich bin gerade dabei eine REST Schnittstelle mit Java EE in Zusammenspiel mit Tomcat zu schreiben. Das funktioniert soweit alles ganz gut. Ich möchte nun einen Interceptor schreiben, der die JSON Response Strings manipuliert und ergänzt. Das Problem, das ich habe, ist, dass mein Interceptor nicht aufgerufen wird und ich nicht genau weiß warum. Ich schreib hier noch meinen bisherigen Source-Code und hoffe auf einige hilfreiche Tipps von euch.
JsonDataInterface.java
@NameBinding
@Retention(RetentionPolicy.RUNTIME)
public @interface JsonDataInterceptor {
}
JsonDataInterfaceImpl.java
@Provider
@JsonDataInterceptor
public class JsonDataInterceptorImpl implements WriterInterceptor {
@Override
public void aroundWriteTo(WriterInterceptorContext context) throws IOException, WebApplicationException {
OutputStream outputStream = context.getOutputStream();
String test = "TEST";
outputStream.write(test.getBytes());
context.setOutputStream(outputStream);
context.proceed();
}
}
In der Klasse, wo ich den Interceptor verwende, habe ich nur noch @JsonDataInterceptor über die Methode geschrieben aber wie gesagt aufgerufen wird leider nichts...
Ich danke euch für eure Hilfe!
Grüße
Tru5T