RestEasy:javax.ws.rs.ProcessingException:GZIP 输入超过最大大小:10000000
RestEasy : javax.ws.rs.ProcessingException: GZIP input exceeds max size: 10000000
我正在尝试阅读大量回复。我收到此错误 "javax.ws.rs.ProcessingException: RESTEASY003357: GZIP input exceeds max size: 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)
谢谢
在 servlet 上下文中添加此参数 "resteasy.gzip.max.input" 解决了问题。
servletContext.setInitParameter("resteasy.gzip.max.input",
String.valueOf(Integer.MAX_VALUE));
因为我没有 servlet 上下文,所以我正在使用 :
webTarget.register(new GZIPDecodingInterceptor(maxCompressedSize));
我的情况我用的是maxCompressedSize=Integer.MAX_VALUE
,可能有点高。该值应根据预期的压缩内容大小进行调整。
我正在尝试阅读大量回复。我收到此错误 "javax.ws.rs.ProcessingException: RESTEASY003357: GZIP input exceeds max size: 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)
谢谢
在 servlet 上下文中添加此参数 "resteasy.gzip.max.input" 解决了问题。
servletContext.setInitParameter("resteasy.gzip.max.input",
String.valueOf(Integer.MAX_VALUE));
因为我没有 servlet 上下文,所以我正在使用 :
webTarget.register(new GZIPDecodingInterceptor(maxCompressedSize));
我的情况我用的是maxCompressedSize=Integer.MAX_VALUE
,可能有点高。该值应根据预期的压缩内容大小进行调整。