Tomcat 8.0.30 + Spring Web Application - 解析HTTP请求标头时出错

时间:2016-05-25 19:00:38

标签: javascript spring tomcat tomcat8

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

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

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

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

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

在Spring中,我们使用类级别的@controlleradvice anotation和

来全局处理异常
@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)

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

1 个答案:

答案 0 :(得分:0)

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

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