1

我正在尝试为来自服务器的 json 响应启用压缩。目前我看到了响应但没有压缩,下面我提到了配置。

服务器:码头


小服务程序.xml

<bean name="/TaskSearchApp.json" class="com.googlecode.jsonrpc4j.spring.JsonServiceExporter">
    <property name="service" ref="taskSearchAppBean"/>
    <property name="serviceInterface" value="com.webmethods.caf.TaskSearchAppInterface"/>
</bean>

Web.xml

     <filter>
    <filter-name>GzipFilter</filter-name>
    <filter-class>org.eclipse.jetty.servlets.GzipFilter</filter-class>
</filter>
<filter-mapping>
    <filter-name>GzipFilter</filter-name>
    <url-pattern>*json</url-pattern>
</filter-mapping>

客户端bean.xml

</bean>
    <bean id="taskSearchAppBeanJSON" class="com.googlecode.jsonrpc4j.spring.JsonProxyFactoryBean">
    <property name="serviceUrl" value="http://localhost:8888/TaskSearchApp/TaskSearchApp.json"></property>
    <property name="serviceInterface" value="com.webmethods.caf.TaskSearchAppInterface"></property>
</bean>

4

1 回答 1

0

好的,我可以通过添加 extraHttpHeaders.put("Accept-Encoding","gzip, deflate"); 来解决这个问题

但是现在我在解析 gzipped 响应时遇到了错误

原因:com.fasterxml.jackson.core.JsonParseException:非法字符((CTRL-CHAR,代码 31)):在 [来源:com. googlecode.jsonrpc4j.NoCloseInputStream@700a4488; line: 1, column: 2] at com.fasterxml.jackson.core.JsonParser._constructError(JsonParser.java:1369) at com.fasterxml.jackson.core.base.ParserMinimalBase._reportError(ParserMinimalBase.java:532) at com .fasterxml.jackson.core.base.ParserMinimalBase._throwInvalidSpace(ParserMinimalBase.java:478) 在 com.fasterxml.jackson.core.json.UTF8StreamJsonParser._skipWSOrEnd(UTF8StreamJsonParser.java:2508) 在 com.fasterxml.jackson.core.json .UTF8StreamJsonParser.nextToken(UTF8StreamJsonParser.java:617) 在 com.fasterxml.jackson.databind.ObjectMapper._initForReading(ObjectMapper.java:2926) 在 com.fasterxml。

于 2013-10-25T13:06:53.953 回答