java报错冲突问题

报错冲突问题

这几天遇到个不太好看的问题,在本地linux上是能正常运行的,在uos的linux上报错问题

报错如下:
Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'getServletRegistrationBean9' defined in class path resource [cn/myapps/conf/MyappsMvcConfig.class]: Bean instantiation via factory method failed; nested exception is org.springframework.beans.BeanInstantiationException: Failed to instantiate [org.springframework.boot.web.servlet.ServletRegistrationBean]: Factory method 'getServletRegistrationBean9' threw exception; nested exception is java.lang.NoSuchMethodError: org.apache.commons.logging.LogFactory.getClassLoader(Ljava/lang/Class;)Ljava/lang/ClassLoader;

找了很久,发现包冲突的问题

仔细看:
nested exception is java.lang.NoSuchMethodError: org.apache.commons.logging.LogFactory.getClassLoader

这句话是方法LogFactory类里面没找到getClassLoader方法
在linux报错如图:

在idea上发现很多org.apache.commons.logging.LogFactory包

在这里插入图片描述

去obpm-runtime.war包的lib去看,减少选择范围

在这里插入图片描述

发现在这个spring-jcl-5.0.9.RELEASE.jar包没有对应的getClassLoader方法

在这里插入图片描述

在commons-logging-1.2.jar包里有getClassLoader方法

在这里插入图片描述

弄断点发现的确有走commons-logging-1.2.jar的方法

没有走spring-jcl-5.0.9.RELEASE.jar的任何方法

试过在uos的tomcat把这个包去除,可正常运行

现在要在maven里把spring-jcl-5.0.9.RELEASE.jar去除

到指定obpm-core包,用命令mvn dependency:tree查看包所在路径

[INFO] +- org.springframework:spring-test:jar:5.0.9.RELEASE:test
[INFO] |  \- org.springframework:spring-core:jar:5.0.9.RELEASE:compile
[INFO] |     \- org.springframework:spring-jcl:jar:5.0.9.RELEASE:compile

去到对应的位置里

<dependency>
	<groupId>org.springframework.boot</groupId>
	<artifactId>spring-boot-starter-test</artifactId>
	<exclusions>
		<exclusion>
			<!--与 commons-logging-1.2.jar有冲突 导致uos跑不起来-->
			<groupId>org.springframework</groupId>
			<artifactId>spring-jcl</artifactId>
		</exclusion>
	</exclusions>
	<scope>test</scope>
</dependency>

runtime可正常启动

在这里插入图片描述

signon可正常启动

在这里插入图片描述

从图中有报错,但不影响运行

kms可正常启动

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-oiICFmLl-1584780815367)(https://i.loli.net/2020/03/04/gkWHoAMaDUK53jG.png)]

不明白的原因:

为什么uos会跑到spring-jcl-5.0.9.RELEASE.jar方法里,有些linux是正常的

参考连接:

https://blog.csdn.net/weixin_40686853/article/details/87923574
JAVA报错"cannot be cast to"是指在类型转换时出现错误。这个错误通常发生在代码中试图将一个类型转换为另一个类型,但是两个类型之间不存在继承关系或者类型转换是不允许的情况下。举个例子,如果我们试图将一个类型为com.bjpowernode.ba03.Student的对象强制转换为com.bjpowernode.ba01.Student的类型,就会出现ClassCastException报错。 另外,也有可能出现"cannot be cast to"的报错是因为在maven开发web应用程序时,引入的servlet-api.jar与其他jar包存在冲突。这个报错可能会显示"Offending class: javax/servlet/...",并提示"jar not loaded"。 此外,在复制包的过程中没有导入必要的包也可能导致"cannot be cast to"的报错。比如,当我们复制代码时,可能会忘记导入相关的包,从而导致类型转换错误。 总结来说,"cannot be cast to"的报错通常是由于类型转换错误或者包导入错误引起的。我们需要仔细检查代码中的类型转换和包导入的问题,以解决这类报错。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [spring中遇到的java.lang.ClassCastException中cannot be cast to报错(初学)](https://blog.csdn.net/m0_67393413/article/details/126116762)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* [解决cannot be cast to javax.servlet.Filter 报错问题](https://download.csdn.net/download/weixin_38565801/14046932)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值