gpt4 book ai didi

java - 如何调试Tomcat压缩问题?

转载 作者:行者123 更新时间:2023-11-30 06:12:50 24 4
gpt4 key购买 nike

我在两台不同的 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" />

在启用压缩之前,我可以从本地计算机上使用 Postman 调用这两个应用程序,没有任何问题(只有第二个响应未压缩)

现在已启用压缩,当我调用第二个应用程序(我在其中启用了压缩)时,出现错误:

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.

我做了一些观察:

  • 两台服务器都具有完全相同的配置(至少我非常确定),并且第一个应用程序可以完美运行。
  • 如果我在 Unix 机器上使用curl 命令调用第二个应用程序,我会毫无问题地得到响应。 (但它不适用于 Windows 盒子中的 postman )
  • 第二个应用程序的响应没有 header Content-Encoding
  • 日志没有显示任何工作(所有请求都记录为已处理,状态为 200,但 postman 显示 502 错误)
  • 工作应用程序在 tomcat 7.0.64 上运行,而在 tomcat 7.0.76 上运行的应用程序不工作,但我在 changelog 中没有找到任何相关内容。这些版本之间。

所以我很困惑为什么一台服务器可以工作,而另一台服务器却不能。

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

最佳答案

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

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

关于java - 如何调试Tomcat压缩问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49857183/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com