spring boot 报 java.lang.NoClassDefFoundError: org/apache/commons/discovery/tools/DiscoverSingleton

  • 起因:spring boot 引入一个web service client 服务,写的定时任务例子,发现执行报错:java.lang.NoClassDefFoundError: org/apache/commons/discovery/tools/DiscoverSingleton。

  • 解决: 缺少相关依赖包,但工程的build path -> configure build path -> libraries 下有commons-discovery 和 commons-logging 包,要移除这两个,不然可能会报:org.apache.commons.discovery.DiscoveryException: No implementation defined for org.apache.commons.logging.LogFactory 错误。
    在pom文件下引入依赖:

<dependency>
    <groupId>commons-discovery</groupId>
    
这个错误`java.lang.NoClassDefFoundError: org/apache/commons/lang/BooleanUtils`通常发生在Java程序试图使用Apache Commons Lang库中的`BooleanUtils`类,但是该类的JAR包未被正确地添加到项目的类路径(classpath)中。 Apache Commons Lang是一个流行的实用工具库,其中包含很多常用的Java工具类,包括`BooleanUtils`。 解决这个问题的步骤如下: 1. **确认是否已添加依赖**:检查你的项目构建文件(例如Maven的pom.xml或Gradle的build.gradle),确保已经包含了Apache Commons Lang的依赖。如果是Maven,应该类似这样添加: ```xml <dependency> <groupId>commons-lang</groupId> <artifactId>commons-lang</artifactId> <version>3.x.x</version> <!-- 更新到最新版本 --> </dependency> ``` 如果是Gradle,应类似这样: ```groovy implementation 'org.apache.commons:commons-lang3:x.y.z' // 更新到最新版本 ``` 2. **重新构建项目**:清除项目缓存(如果有的话),然后通过构建工具(如Maven的mvn clean install或Gradle的gradle build)重新构建项目。 3. **检查路径配置**:如果你使用IDEA等集成开发环境,确保工程设置中已正确设置了类路径,使得IDE能找到Apache Commons Lang的JAR文件。 4. **手动添加JAR**:如果以上都正常,尝试从Apache Commons网站下载jar文件,将其放置在项目的lib目录下,然后在运行时指定这个目录作为类路径。 如果问题仍然存在,可能是JVM的启动参数配置有问题,或者JDK版本过低无法支持某些库,请检查这些方面。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值