Java 使用jersey进行gzip压缩时出现的问题

Java 使用jersey进行gzip压缩时出现的问题,java,spring-boot,jersey,compression,jax-rs,Java,Spring Boot,Jersey,Compression,Jax Rs,我想在jersey上启用压缩功能。我有一个Web服务,它必须返回json格式的事件列表。 例如: { "page": 1, "pageCount": 1, "list": [ { "pk": 1, "state": "ACTIVE", "locationType": "ADDRESS", "title": "titre", "description": "hello", "country": "osef"

我想在jersey上启用压缩功能。我有一个Web服务,它必须返回json格式的事件列表。 例如:

{
  "page": 1,
  "pageCount": 1,
  "list": [
    {
      "pk": 1,
      "state": "ACTIVE",
      "locationType": "ADDRESS",
      "title": "titre",
      "description": "hello",
      "country": "osef",
      "city": "osef",
      "address": "osef",
      "inAgendaCount": 0,
      "dateBeginning": 1498734400758
    }
  ]
}
但当我启用gzip压缩时,响应如下:

{
  "page": 1,
  "pageCount": 1,
  "list": [
    {
    }
  ]
}
列表中的所有事件都被删除。 以下是我的Web服务:

@Component
@Path("/")
public class EventSearchWebService {

    @Autowired
    private EventSearchController controller;

    @GET
    @Path("/event/search")
    @Produces(MediaType.APPLICATION_JSON)
    @JsonView(SmallView.class)
    public Response search(@QueryParam("keywords") String keywords, @DefaultValue("1") @QueryParam("page") Long page) {

        if (keywords != null && !keywords.trim().isEmpty()) {
            return Response.status(200).entity(controller.search(keywords, page)).build();
        } else {
            return Response.status(200).entity(controller.search(page)).build();
        }
    }
}
我的资源配置与压缩:

@Configuration
@ApplicationPath("/rest")
public class JerseyConfig extends ResourceConfig {

    public JerseyConfig() {
        // Compression
        register(EntityFilteringFeature.class);
        EncodingFilter.enableFor(this, GZipEncoder.class);

        register(EventSearchWebService.class);

        register(MultiPartFeature.class);
        register(ValidationFeature.class);
        register(ValidationExceptionMapper.class);
        register(CrossDomainContainerResponseFilter.class);

        registerClasses(AccessDeniedExceptionMapper.class,
                GeneralUserExceptionMapper.class,
                NoResultExceptionMapper.class,
                UnknowExceptionMapper.class,
                ValidationExceptionMapper.class);
    }
}
和我的pageableList类:

public class PageableList<E> {

    @Getter
    @Setter
    @JsonView(value = {SmallView.class, FullView.class})
    private long page;

    @Getter
    @Setter
    @JsonView(value = {SmallView.class, FullView.class})
    private long pageCount;

    @Getter
    @Setter
    @JsonView(value = {SmallView.class, FullView.class})
    private List<E> list;

    public PageableList() {
        super();
    }

    public PageableList(List<E> list) {
        super();
        this.list = list;
    }
}

问题出在ResourceConfig中。 这一行:

register(EntityFilteringFeature.class);

是无用的,会导致错误。

问题出在ResourceConfig中。 这一行:

register(EntityFilteringFeature.class);
是无用的,并导致错误