Tomcat报BAD packet signature 18245错误的原因

今天在启动服务器时,报了一个BAD packet signature 18245错误

详细错误如下:

复制代码
   2009-6-5 11:09:11 org.apache.jk.common.MsgAjp processHeader  
   严重: BAD packet signature 18245  
   2009-6-5 11:09:11 org.apache.jk.common.ChannelSocket processConnection  
   严重: Error, processing connection  
   java.lang.IndexOutOfBoundsException  
       at java.io.BufferedInputStream.read(BufferedInputStream.java:306)  
       at org.apache.jk.common.ChannelSocket.read(ChannelSocket.java:626)  
       at org.apache.jk.common.ChannelSocket.receive(ChannelSocket.java:583)  
       at org.apache.jk.common.ChannelSocket.processConnection(ChannelSocket.java:691)  
       at org.apache.jk.common.ChannelSocket$SocketConnection.runIt(ChannelSocket.java:895)  
       at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:689)  
       at java.lang.Thread.run(Thread.java:595)  

这是一个AJP协议处理的包。

查了一下Tomcat的server.xml中配置文件

复制代码
   <Connector port="8009"   
                  enableLookups="false" redirectPort="8443" protocol="AJP/1.3" />  

初步断定,有一些不是AJP协议的请求,请求了这个端口。

解决方法:

用端口扫描工具(优化大师,防火墙,ewido等都可以)扫描系统网络连接状态,查看了一下是否有访问8009端口的程序。

关闭这个程序就OK了。

我这边是因为IDE自启动IE,访问路径端口被修改成了:http://localhost:8009 把端口修改回了8080端口就OK了。

参考资料:

AJP协议

AJP是定向包协议。因为性能原因,使用二进制格式来传输可读性文本。WEB服务器通过TCP连接和SERVLET容器连接。为了减少进程生成 socket的花费,WEB服务器和SERVLET容器之间尝试保持持久性的TCP连接,对多个请求/回复循环重用一个连接。一旦连接分配给一个特定的请 求,在请求处理循环结束之前不会在分配。换句话说,在连接上,请求不是多元的。这个是连接两端的编码变得容易,虽然这导致在一时刻会有很多连接。

一旦WEB服务器打开了一个到SERVLET容器的连接,连接处于下面的状态:

◆ 空闲

这个连接上没有处理的请求。

◆ 已分派

连接正在处理特定的请求。

一旦一个连接被分配给一个特定的请求,在连接上发送的基本请求信息是高度压缩的。在这点,SERVLET容器大概准备开始处理请求,当它处理的时候,它能发回下面的信息给WEB服务器:

◆ SEND_HEADERS

发送一组头到浏览器。

◆ SEND_BODY_CHUNK

发送一块主体数据到浏览器。

◆ GET_BODY_CHUNK

从请求获得下一个数据如果还没有全部传输完,如果请求内容的包长度非常大或者长度不确定,这是非常必要的。例如上载文件。注意这和HTTP的块传输没有关联。

◆ END_RESPONSE

结束请求处理循环。

相关推荐
好家伙VCC3 分钟前
**发散创新:探索群体智能编程中的新境界**随着科技的飞速发展,群体智能逐渐成为编程领域的一大研究热点。本文将深入探讨群体智能的概念、优
java·python·科技
秉承初心17 分钟前
Java 23种设计模式的详细解析
java·设计模式
千码君201622 分钟前
Go语言:记录一下Go语言系统学习的第一天
java·开发语言·学习·golang·gin·并发编程·编译语言
聪明的笨猪猪24 分钟前
Java 面试清单(含超通俗生活案例与深度理解)
java·经验分享·笔记·面试
MrSYJ42 分钟前
学完涨工资的技巧2:Spring Authorization Server如何签发JWTToken
java·spring boot·微服务
珹洺44 分钟前
Java-Spring入门指南(二十六)Android Studio下载与安装
java·spring·android studio
JAVA学习通1 小时前
JDK高版本特性总结与ZGC实践
java·jvm·算法
cxyxiaokui0011 小时前
JDK 动态代理 vs CGLIB:原理、区别与 Spring AOP 底层揭秘
java·后端·spring
代码充电宝1 小时前
LeetCode 算法题【中等】189. 轮转数组
java·算法·leetcode·职场和发展·数组
我命由我123451 小时前
PDFBox - PDDocument 与 byte 数组、PDF 加密
java·服务器·前端·后端·学习·java-ee·pdf