最近把项目部署到windows服务器上面,通过tomcat跑80端口,一直很稳定。今天在查tomcat日志时,发现了大量的错误日志,错误详细信息如下:
2009-11-15 16:09:05 org.apache.jk.common.MsgAjp processHeader
严重: BAD packet signature 18245
2009-11-15 16:09:05 org.apache.jk.common.ChannelSocket processConnection
严重: Error, processing connection
java.lang.IndexOutOfBoundsException
at java.io.BufferedInputStream.read(BufferedInputStream.java:310)
at org.apache.jk.common.ChannelSocket.read(ChannelSocket.java:620)
at org.apache.jk.common.ChannelSocket.receive(ChannelSocket.java:577)
at org.apache.jk.common.ChannelSocket.processConnection(ChannelSocket.java:685)
at org.apache.jk.common.ChannelSocket$SocketConnection.runIt(ChannelSocket.java:889)
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:690)
at java.lang.Thread.run(Thread.java:619)
通过日志错误信息,可以判定不是程序问题。通过查看相关资料可以判定是有人访问程序的ajp端口造成的,于是我模拟访问ajp的端口,结果真的重现出来了。于是我把tomcat配置文件service.xml中的相关内容注解掉就可以了。
<!–
<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />
–>
结果这个错误就不会出现了。