启动tomcat时会报如下错误,原因是tomcat与jdk的版本不匹配。当然要因情况而异,给大家一个解决方法的思路

19-Nov-2023 20:14:26.139 警告 [main] org.apache.catalina.loader.WebappClassLoaderBase.clearReferencesObjectStreamClassCaches 无法清除web应用程序[activiti-admin]的ObjectStreamClass$缓存中的软引用java.lang.ClassCastException: class java.io.ObjectStreamClass$Caches$1 cannot be cast to class java.util.Map (java.io.ObjectStreamClass$Caches$1 and java.util.Map are in module java.base of loader 'bootstrap')at org.apache.catalina.loader.WebappClassLoaderBase.clearCache(WebappClassLoaderBase.java:2268)at org.apache.catalina.loader.WebappClassLoaderBase.clearReferencesObjectStreamClassCaches(WebappClassLoaderBase.java:2255)at org.apache.catalina.loader.WebappClassLoaderBase.clearReferences(WebappClassLoaderBase.java:1627)at org.apache.catalina.loader.WebappClassLoaderBase.stop(WebappClassLoaderBase.java:1555)at org.apache.catalina.loader.WebappLoader.stopInternal(WebappLoader.java:449)at org.apache.catalina.util.LifecycleBase.stop(LifecycleBase.java:257)at org.apache.catalina.core.StandardContext.stopInternal(StandardContext.java:5431)at org.apache.catalina.util.LifecycleBase.stop(LifecycleBase.java:257)at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:187)at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:717)at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:690)at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:705) 

这是从tomcat官方文档中找到对应的jdk版本

  • 后记

并不是tomcat与jdk版本匹配就一定不会问题,产生这个问题是我启动activiti-app时发生的,当时我的tomcat是9,JDK是11后来又换成17,按理说不会出现问题,版本是匹配的,但还是报错,可能的原因是activiti-app是用的Activiti6.0.0,该项目用的jar包是jdk8做的,最后换成jdk8才没有报错,顺利的启动了项目。

我是时生,一个正在努力的小白。欢迎批评,欢迎指正,欢迎共享。 如果这篇文章对你有帮助,麻烦点个赞呗!