2.16.1 rule-db模式 NoClassDefFoundError: jodd/util/SystemUtil
- Dominant language
- Java
- Stars
- 3.9k
- Forks
- 525
- PR merge metrics
- No merged PRs in 30d
Description
SpringBoot Version: 3.3.13
liteflow Version 2.16.1
基于rule-db模式中的redis模式,集成如下依赖
com.yomahub
liteflow-rule-db-redis
liteflow-rule-db-redis 中的 redisson 版本为3.21.0
启动时会加载工具 jodd/util/SystemUtil,异常如下
Exception in thread "main" java.lang.IllegalStateException: java.lang.NoClassDefFoundError: jodd/util/SystemUtil
at org.springframework.boot.SpringApplication.handleRunFailure(SpringApplication.java:825)
at org.springframework.boot.SpringApplication.run(SpringApplication.java:345)
at org.springframework.boot.SpringApplication.run(SpringApplication.java:1363)
at org.springframework.boot.SpringApplication.run(SpringApplication.java:1352)
at com.yy.cloud.ActivityApplication.main(ActivityApplication.java:10)
Caused by: java.lang.NoClassDefFoundError: jodd/util/SystemUtil
at com.yy.cloud.config.YyIp2RegionAutoConfiguration.initIp2Region(YyIp2RegionAutoConfiguration.java:52)
at com.yy.cloud.config.YyIp2RegionAutoConfiguration.run(YyIp2RegionAutoConfiguration.java:30)
at org.springframework.boot.SpringApplication.lambda$callRunner$4(SpringApplication.java:786)
at org.springframework.util.function.ThrowingConsumer$1.acceptWithException(ThrowingConsumer.java:82)
at org.springframework.util.function.ThrowingConsumer.accept(ThrowingConsumer.java:60)
at org.springframework.util.function.ThrowingConsumer$1.accept(ThrowingConsumer.java:86)
at org.springframework.boot.SpringApplication.callRunner(SpringApplication.java:798)
at org.springframework.boot.SpringApplication.callRunner(SpringApplication.java:786)
at org.springframework.boot.SpringApplication.lambda$callRunners$3(SpringApplication.java:774)
at java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.accept(ForEachOps.java:184)
at java.base/java.util.stream.SortedOps$SizedRefSortingSink.end(SortedOps.java:357)
at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:510)
at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:499)
at java.base/java.util.stream.ForEachOps$ForEachOp.evaluateSequential(ForEachOps.java:151)
at java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateSequential(ForEachOps.java:174)
at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
at java.base/java.util.stream.ReferencePipeline.forEach(ReferencePipeline.java:596)
at org.springframework.boot.SpringApplication.callRunners(SpringApplication.java:774)
at org.springframework.boot.SpringApplication.run(SpringApplication.java:342)
... 3 more
Caused by: java.lang.ClassNotFoundException: jodd.util.SystemUtil
at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:641)
at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:188)
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:526)
... 22 more
但是实际依赖中的版本,路径为 jodd/system/SystemUtil (jodd 5.1.6)
解决方法:
我的项目基于SrpingBoot3, 默认集成了redisson的(jodd 6.x.x), 直接去掉liteflow-rule-db-redis中的redisson依赖
Contributor guide
No contributing guide indexed for this repository
Research direction
Start by inspecting the dependency declarations for liteflow-rule-db-redis and its Redisson version, then reproduce startup with Spring Boot 3.3.13 and examine the resolved dependency tree. Confirm that the application no longer fails to load jodd.util.SystemUtil and that the Redis rule-db integration starts with a compatible dependency set.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- java, redis, spring-boot
- Domain
- backend, databases
- Issue type
- Bug
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 56/100