【问题标题】:Tomcat 6.0.36 not reporting why it responded with 400Tomcat 6.0.36 未报告为什么以 400 响应
【发布时间】:2013-09-12 21:02:52
【问题描述】:

我有一个带有 java.net.HttpUrlConnection 发送消息的 tomcat 服务器和 java 客户端。通常一切正常,但客户端发出的一些请求会以 400 http 错误响应。

问题是tomcat 日志上没有显示任何内容。我什至尝试将 .level=fine 和其他日志级别更改,仍然没有显示异常或错误。

我怀疑请求中的编码错误或类似的东西,但 tomcat 没有给我任何线索。

顺便说一下,网址没问题。我还看到请求到达服务器但没有到达我的 servlet。 似乎 tomcat 收到了消息,声明它是错误的并且没有记录什么是错误的。

有人能想出一种方法来查看 400 原因吗? 谢谢

【问题讨论】:

  • 您查看了哪些日志文件? Tomcat 前面有 Apache 之类的 Web 服务器吗?
  • 没有。我不。我查看了 Catalina.out,localhost...
  • 告诉我们更多关于你的日志机制的信息。还告诉我们您使用的是哪种应用程序? Spring/plain servlet ... ??
  • 普通 servlet。我在调试时看到服务器没有收到消息。 Tomcat 阻止它。
  • 收到 400 状态码时响应正文中的内容是什么?

标签: java tomcat


【解决方案1】:

我终于想通了—— 我看到总标头的大小 + 写入 OutputStream 的数据大小 - 异常高 - 所以我在 Tomcat HTTP 连接器中定义:

连接器端口="8080" 协议="HTTP 1/1" ma​​xPostSize="10485760" maxHttpHeaderSize="10485760"/

很遗憾 Tomcat 不只是告诉我这个,我不得不猜测我的 - 我会将此作为错误报告。

谢谢

【讨论】:

  • 如果您在报告该错误后也可以在此处链接该错误,那就太好了,因为我怀疑人们会通过谷歌搜索找到这里
  • 有用的信息面临同样的问题需要一周时间才能解决。
  • 非常有用...我也遇到过。谢谢
【解决方案2】:

确实,这也是 Internet Explorer 11 上“http 400 bad request”错误的解决方案。
添加

maxHttpHeaderSize="10485760" maxPostSize="10485760" 

到 Tomcat 的 server.xml 的连接器节点。

似乎我在 IE11 上的 ajax-request (extjs) 使用的请求标头比 Tomcat 6 上的默认 (8192 = 8 KB) 最大 http 标头大小更大?

使用 IE10 和 Chrome,我没有遇到这个问题。

【讨论】:

    【解决方案3】:

    这是一个非常值得讨论的问题。我在组织的工作中也遇到了同样的问题。我对此一无所知,因为在 catalina.out 或我们的应用程序日志中没有很好的日志记录。从客户端应用程序对在 Tomcat_8 中运行的 API 发出的 Http 调用被服务器拒绝,请求为 400 错误。只有 Tomcat locahost_access 日志通过打印请求的 400 http 状态来记录它。在我增加 http 标头大小后,问题得到了解决。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-12-26
      • 2018-07-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-09-11
      • 2015-03-23
      相关资源
      最近更新 更多