报错 java.lang.NoSuchMethodError: org.apache.commons.lang3.StringUtils.repacePattern()

异常现象 : 

  编译时正常,压住ctrl + 鼠标单击StringUtils 发现引用的是 commons-lang3-3.2.1.jar中的StringUtils.class。

  eclipse 启动项目执行正常不报错。

  部署到linux 执行报错java.lang.NoSuchMethodError: org.apache.commons.lang3.StringUtils.repacePattern。

  此时pom.xml中直接引入commons-lang3-3.2.1.jar的位置在220几行,然后有一个第三方提供的接口驱动包meta-api.jar

(里面依赖了 hive-exec-1.1.1.jar 此jar 依赖commons-lang3) 在pom.xml 中1000多行。

  备注:调换两个依赖包前后次序(将commons-lang3-3.2.1.jar放在 meta-api.jar之后)编译出现报错。

异常原因:

  项目再运行时候虚拟机加载了meta-api.jar 中依赖的hive-exec-1.1.1.jar 依赖的commons-lang3-*.*.*.jar

  由于 此commons-lang3-*.*.*.jar 版本低   StringUtils.class 没有repacePattern()方法。

  所以抛出异常。

解决办法:再导入meta-api.jar 位置排除掉hive-exec-1.1.1.jar(将commons-lang3.jar 所在的 jar包排除),形式如下

<dependency>
	<groupId>org.*.*</groupId>
	<artifactId>meta-api</artifactId>
	<version>3.9</version>
	<exclusions>
		<exclusion>
		    <groupId>com.cc.maven</groupId>
		    <artifactId>project-c</artifactId>
		</exclusion>
	</exclusions>
</dependency>

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值