【问题标题】:Tomcat 8.0.30 + Spring web Application - Error parsing HTTP request headerTomcat 8.0.30 + Spring Web 应用程序 - 解析 HTTP 请求标头时出错
【发布时间】:2016-05-25 19:00:38
【问题描述】:

使用 Spring (4.0.9) 开发的 Web 应用程序部署在 tomcat (8.0.30) 上,该应用程序运行在两个节点上并使用 F5 进行负载平衡。

在生产等效环境中,应用程序按预期工作。

但是在我们的生产环境中,我们注意到应用程序在某个时间点没有一致地呈现 CSS 或 JS 文件。我们使用 requirejs 来解决模块化依赖。

这在 IE 11 和 Mozilla 中都会发生。

SCRIPT5022: Script error for: jquery-ui
http://requirejs.org/docs/errors.html#scripterror

在 Spring 中,我们在类级别使用 @controlleradvice 注释全局处理异常,并且

@ExceptionHandler(Exception.class)
public ModelAndView handleException(Exception exe,HttpServletRequest request){
//some logger to print the request.getRequestURL()
}

当出现问题时,request.getRequestURL() 在记录器中返回空指针异常。

我们一无所知,我们确信数据库中没有问题。 会不会有端口问题?对此的任何帮助表示赞赏。

最新更新:1

在我们重新启动应用程序后,问题消失了,但在退出后有时会弹出相同的问题,日志消息有

30-May-2016 19:00:28.392 INFO [http-nio-portNum-exec-4] org.apache.coyote.http11.AbstractHttp11Processor.process Error parsing HTTP request header
 Note: further occurrences of HTTP header parsing errors will be logged at DEBUG level.
 java.lang.IllegalStateException: Unexpected state: headers already parsed. Buffer not recycled?

根据进一步要求,我们发现 js 或 CSS 未正确加载到浏览器中。

我们用于在日志中获取以下消息

org.apache.coyote.http11.AbstractHttp11Processor.endRequest Error finishing response
 java.lang.NullPointerException
    at org.apache.coyote.http11.InternalNioOutputBuffer.flushBuffer(InternalNioOutputBuffer.java:234)

这里的任何帮助都会有所帮助。

【问题讨论】:

  • 有趣的是,在 tomcat 中停止和启动应用程序,没有任何问题。但仍在寻找发生了什么。
  • 我们迁移到一个新的 linux 服务器,当我们禁用服务器中的 iptables 时,我们注意到我们没有收到异常消息。这是一个偶然的观察,iptables 在安全更新期间被关闭,我们没有收到那些通知邮件。大约 2 周后,当我们启动 iptables 时,我们开始收到通知。现在我们已经关闭了这些服务器中的 iptables,并且正常工作。

标签: javascript spring tomcat tomcat8


【解决方案1】:

我们的 linux 服务器中的 iptables 导致了这个问题。此时我对iptables中的过滤器/规则/链并不熟悉。

禁用 iptables 后,问题得到解决。

【讨论】:

  • 即使现在禁用 iptables 仍然会报告问题。但我确信在这种情况下,Linux Redhat 服务器正在切断请求。
猜你喜欢
  • 1970-01-01
  • 2021-09-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-04-09
  • 2021-02-07
  • 2018-01-09
  • 2020-06-25
相关资源
最近更新 更多