完整的异常,当前最高版本tomcat9.0.39
org.apache.coyote.http11.Http11Processor.service Error processing request
java.lang.AssertionError
at org.apache.catalina.mapper.Mapper.internalMap(Mapper.java:744)
at org.apache.catalina.mapper.Mapper.map(Mapper.java:702)
at org.apache.catalina.connector.CoyoteAdapter.postParseRequest(CoyoteAdapter.java:696)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:337)
at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:374)
at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65)
at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:868)
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1590)
at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.lang.Thread.run(Thread.java:748)
org.apache.catalina.mapper.Mapper.internalMap(Mapper.java:744)
注意抛出位置,如果抛出位置不一样,可能不是同一个问题,目前找到的仅有的关于此的问题的反馈tomcat.10.x6.nabble.com。大致说是请求进入到了本应该被回收的线程。
位置应该是lib\catalina.jar下的,栈显示的744行…都不在internalMap这方法了
以及可能还会出现返回信息错乱问题(请求的是A接口,返回的数据来自其他接口)
这个问题是tomcat9的bug导致的,我已知的9.0.34~9.0.39应该都存在这个问题。解决方案直接换成8.5,我当前更换为8.5.59此问题消失