core.StandardContext.startInternal 一个或多个筛选器启动失败(问题记录)

jar冲突问题解决

场景重现:(个人记录)

linux centos 下启动tomcat8.5 报错

严重 [localhost-startStop-1] org.apache.catalina.core.StandardContext.startInternal
 一个或多个筛选器启动失败。完整的详细信息将在相应的容器日志文件中找到)

相同的问题:

04-Jun-2020 20:45:38.552 严重 [localhost-startStop-1] org.apache.catalina.core.StandardContext.filterStart 启动过滤器异常
	java.lang.IncompatibleClassChangeError: Implementing class
		at java.lang.ClassLoader.defineClass1(Native Method)
		at java.lang.ClassLoader.defineClass(ClassLoader.java:760)
		at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
		at org.apache.catalina.loader.WebappClassLoaderBase.findClassInternal(WebappClassLoaderBase.java:2394)
		at org.apache.catalina.loader.WebappClassLoaderBase.findClass(WebappClassLoaderBase.java:855)
		at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1327)
		at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1180)
		at java.lang.ClassLoader.defineClass1(Native Method)
		at java.lang.ClassLoader.defineClass(ClassLoader.java:760)
		at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
		at org.apache.catalina.loader.WebappClassLoaderBase.findClassInternal(WebappClassLoaderBase.java:2394)
		at org.apache.catalina.loader.WebappClassLoaderBase.findClass(WebappClassLoaderBase.java:855)
		at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1327)
		at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1180)
		at org.apache.struts2.convention.PackageBasedActionConfigBuilder.buildClassFinder(PackageBasedActionConfigBuilder.java:416)
		at org.apache.struts2.convention.PackageBasedActionConfigBuilder.findActions(PackageBasedActionConfigBuilder.java:397)
		at org.apache.struts2.convention.PackageBasedActionConfigBuilder.buildActionConfigs(PackageBasedActionConfigBuilder.java:354)
		at org.apache.struts2.convention.ClasspathPackageProvider.loadPackages(ClasspathPackageProvider.java:53)
		at com.opensymphony.xwork2.config.impl.DefaultConfiguration.reloadContainer(DefaultConfiguration.java:274)
		at com.opensymphony.xwork2.config.ConfigurationManager.getConfiguration(ConfigurationManager.java:67)
		at org.apache.struts2.dispatcher.Dispatcher.getContainer(Dispatcher.java:978)
		at org.apache.struts2.dispatcher.Dispatcher.init_PreloadConfiguration(Dispatcher.java:446)
		at org.apache.struts2.dispatcher.Dispatcher.init(Dispatcher.java:490)
		at org.apache.struts2.dispatcher.ng.InitOperations.initDispatcher(InitOperations.java:74)
		at org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter.init(

问题难点:

本地启动正常 :

  • 通过idea启动正常
  • 通过本地tomcat8.5 运行正常

将war包丢上测试环境,启动报错 ,报错内容如上。

问题排查方法:

  • 最直接的感觉就是jar冲突,但是本地能正常运行。
  • 难道是tomcat版本问题,测试环境更换tomcat8.0 tomcat8.5 都是报同样的问题。

那就上测试进行排查问题:

首先在启动参数 添加 -verbose:class 参数是 打印jvm加载jar的路径,还有其他用法,(catalina.sh添加)请自行百度

定位在asm 包出现错误。通过本地idea查看确实存在jar冲突问题、然后将多余的jar删除进行重启。(包冲突)

系统正常启动了。

问题总结:

针对jar冲突的问题千奇百怪,用排除法和用相关参数进行查找就好。

注意的是:

 我花费的时间较多,主要是在asm 3.1 和asm5.1 之间排除的时候,我排除了3.1 ,发现还是有问题。就去掉了这个可能,后来找大佬来,排除掉asm 5.1就好了

总结:

没有最难的问题,只有最没有耐心的你 。加油!!

 

 

  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值