dromara / dromara/liteflow

2.16.1 rule-db模式 NoClassDefFoundError: jodd/util/SystemUtil

Open
#98 0 comments 0 reactions 0 assignees View on GitHub
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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.