Java應用部署到tomcat上后,啟動時運行正常,但在運行過程中,是不是拋出如下異常:
嚴重: 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:662)
通過日志錯誤信息,可以判定不是程序問題。而可能是有一些不是AJP協議的請求,請求了這個端口。
解決辦法一:
用端口掃描工具(優化大師,防火牆,ewido等都可以)掃描系統網絡連接狀態,查看了一下是否有訪問8009端口的程序。關閉對應的程序就OK了。
解決辦法二:
把tomcat配置文件service.xml中的相關內容注解掉。
<!-- <Connector port="8009" protocol="AJP/1.3" redirectPort="8443"/> -->
結果這個錯誤就不會出現了。
參考鏈接:
http://blog.sina.com.cn/s/blog_703799860101kg5u.html
http://blog.csdn.net/xiaose7613/article/details/4244614