Java 如何在Neo4j非托管扩展中生成gzip响应?

Java 如何在Neo4j非托管扩展中生成gzip响应?,java,rest,neo4j,jersey,jax-rs,Java,Rest,Neo4j,Jersey,Jax Rs,嗨 我试图在Neo4j非托管扩展中做出gzip响应。我发现这个例子: 我尝试添加此WriterInterceptor: @Provider @压缩 公共类GZIPWriterInterceptor实现WriterInterceptor{ @凌驾 WriteTo周围的公共无效(WriterInterceptorContext上下文) 抛出IOException、WebApplicationException{ 多值Map headers=context.getHeaders(); 添加(“内容编码

我试图在Neo4j非托管扩展中做出gzip响应。我发现这个例子:

我尝试添加此WriterInterceptor:

@Provider
@压缩
公共类GZIPWriterInterceptor实现WriterInterceptor{
@凌驾
WriteTo周围的公共无效(WriterInterceptorContext上下文)
抛出IOException、WebApplicationException{
多值Map headers=context.getHeaders();
添加(“内容编码”、“gzip”);
final OutputStream OutputStream=context.getOutputStream();
setOutputStream(新的gzip输出流(outputStream));
context.procedure();
}
}
这个注释是:

@NameBinding
@保留(RetentionPolicy.RUNTIME)
公共@接口压缩{
}
在我的资源中,我是这样使用它的:

@GET
@路径(“/users”)
@产生(MediaType.APPLICATION_JSON)
@压缩
公共列表getUsers(){
返回factory.getUserService(graphDb.getUsers();
}
但是从未调用WriterInterceptor,为什么?我怎样才能让我的回答被压缩


我想在我的非托管插件中解决这个问题,而响应在Neo4j之外的代理中gzip的解决方案不是替代方案。

您需要注册一个关注gzip的servlet过滤器。这可以在
SPIPluginLifecycle
中完成,请参阅以下博文: