Хотя MessageBodyWriterInterceptor
помогает, лучше использовать PostProcessInterceptor
, поскольку он будет перехватывать ответы, которые не вызывают MessageBodyWriters (например, Response.created(URI.create("/rest/justcreated")).build()
).
Для получения дополнительной информации см. Официальную документацию .
import java.util.ArrayList;
import java.util.List;
import javax.ws.rs.core.MultivaluedMap;
import javax.ws.rs.ext.Provider;
import org.jboss.resteasy.annotations.interception.ServerInterceptor;
import org.jboss.resteasy.core.ServerResponse;
import org.jboss.resteasy.spi.interception.PostProcessInterceptor;
@Provider
@ServerInterceptor
public class MyPostProcessInterceptor implements PostProcessInterceptor {
@Override
public void postProcess(ServerResponse response) {
MultivaluedMap<String, Object> headers = response.getMetadata();
List<Object> domains = headers.get("X-BuildTime");
if (domains == null) { domains = new ArrayList<Object>(); }
domains.add("20100335.1130");
headers.put("X-BuildTime", domains);
}
}