Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/358.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何调试Tomcat压缩问题?_Java_Tomcat7 - Fatal编程技术网

Java 如何调试Tomcat压缩问题?

Java 如何调试Tomcat压缩问题?,java,tomcat7,Java,Tomcat7,我在两台不同的CentOS机器上有两台tomcat服务器,运行相同的应用程序(我的开发环境和测试环境)。其中一个在其server.xml中启用了压缩,而另一个则没有,因此我向tomcat添加了相同的配置,该配置没有启用压缩 两台机器上的server.xml的相关部分如下所示: <Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" compression="on"

我在两台不同的CentOS机器上有两台tomcat服务器,运行相同的应用程序(我的开发环境和测试环境)。其中一个在其
server.xml
中启用了压缩,而另一个则没有,因此我向tomcat添加了相同的配置,该配置没有启用压缩

两台机器上的
server.xml
的相关部分如下所示:

<Connector port="8080" protocol="HTTP/1.1"
           connectionTimeout="20000"
           compression="on" 
           compressionMinSize="2048" 
           noCompressionUserAgents="gozilla, traviata" 
           compressableMimeType="text/html,text/xml,application/json,text/plain"
           redirectPort="8443" />
我提出了几点意见:

  • 两台服务器都有完全相同的配置(至少我非常确定),第一个应用程序工作得非常完美
  • 如果我在Unix机器上使用curl命令调用第二个应用程序,我会毫无问题地得到响应。(但它不适用于Windows邮箱中的邮递员)
  • 来自第二个应用程序的响应没有标题
    内容编码
  • 日志没有显示任何工作(所有请求都记录为已处理,状态为200,但邮递员显示502错误)
  • 工作应用程序运行在tomcat
    7.0.64
    上,而不运行在tomcat
    7.0.76
    上,但我没有发现这些版本之间有任何关联
所以我很困惑,为什么一台服务器可以工作而另一台不能


我可以检查什么来找出错误的来源?

问题来自我使用的JDK版本(
1.8.0.161
),其中包含报告的错误,至少我认为是同一个错误


服务器没有安装相同的版本,因此我通过将服务器1的工作JDK安装到服务器2来解决问题。

使用postman,您应该能够准确地看到服务器返回给您的内容,包括所有标题等。您是否检查了更改过的tomcat的启动日志以获得任何输出?@Jan是的,我的启动日志没有显示出任何错误。Postman显示了响应的标题(这就是为什么我可以说我没有得到
内容编码
标题),但它看起来无法读取响应正文(如果它不能解压缩它,这就有意义)您确实向两台服务器发送了accept Encoding标题,对吗?你检查compression=“force”是否改变了什么吗?@Jan我向两台服务器发送
Accept
标题。我刚刚尝试添加了
Accept Encoding
,结果是一样的(工作服务器仍然工作正常,另一个仍然不工作)。事实上,我已经检查了
compression=“force”
是否改变了某些东西,但它没有改变posman应用程序/gzip的问题:
Content-Encoding Error (content_encoding_error) 

Server response could not be decoded using encoding type returned by server.
This is typically caused by a Web Site presenting a content encoding
header of one type, and then encoding the data differently.