【问题标题】:RestEasy : javax.ws.rs.ProcessingException: GZIP input exceeds max size: 10000000RestEasy:javax.ws.rs.ProcessingException:GZIP 输入超过最大大小:10000000
【发布时间】:2019-10-11 08:08:13
【问题描述】:

我正在尝试阅读大量回复。我收到此错误“javax.ws.rs.ProcessingException:RESTEASY003357:GZIP 输入超出最大大小:10000000”

我们正在使用 jaxrs WebTarget 调用休息服务。如果响应很小,一切正常。如果响应很大,我会收到此错误。

javax.ws.rs.core.Response response = webTarget
            .register(CustomAcceptEncodingGZIPFilter.class,999999998)
            .register(new CustomGZIPDecodingInterceptor(999999999),999999999)
            .register(CustomGZIPEncodingInterceptor.class, 999999997)
            .path(path)
            .request()
            .header(HttpHeaders.CONTENT_TYPE, MediaType.APPLICATION_JSON)
            .header(HttpHeaders.ACCEPT, MediaType.APPLICATION_JSON)
            .get();

我按照https://docs.jboss.org/resteasy/docs/3.5.1.Final/userguide/html/gzip.html 尝试了解决方案。 不过,我无法解决这个问题。

我收到 200 个响应代码,但在读取响应实体时我收到此异常。 异常跟踪

javax.ws.rs.ProcessingException: RESTEASY003357: GZIP input exceeds max size: 10000000
    at org.jboss.resteasy.plugins.interceptors.GZIPDecodingInterceptor$FinishableGZIPInputStream.read(GZIPDecodingInterceptor.java:87)
    at sun.nio.cs.StreamDecoder.readBytes(StreamDecoder.java:284)
    at sun.nio.cs.StreamDecoder.implRead(StreamDecoder.java:326)
    at sun.nio.cs.StreamDecoder.read(StreamDecoder.java:178)
    at java.io.InputStreamReader.read(InputStreamReader.java:184)
    at java.io.Reader.read(Reader.java:140)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)

谢谢

【问题讨论】:

    标签: java jax-rs gzip resteasy rest-client


    【解决方案1】:

    在 servlet 上下文“resteasy.gzip.max.input”中添加这个参数解决了这个问题。

    servletContext.setInitParameter("resteasy.gzip.max.input",
                        String.valueOf(Integer.MAX_VALUE));
    

    【讨论】:

      【解决方案2】:

      由于我没有 servlet 上下文,我正在使用:

      webTarget.register(new GZIPDecodingInterceptor(maxCompressedSize));
      

      在我的情况下,我使用了maxCompressedSize=Integer.MAX_VALUE,这可能有点高。该值应根据预期的压缩内容大小进行调整。

      【讨论】:

        猜你喜欢
        • 2017-04-28
        • 1970-01-01
        • 2018-02-18
        • 2023-03-12
        • 1970-01-01
        • 2014-09-02
        • 2021-06-08
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多