在springboot 4.0中使用enjoy,启动项目报错

enjoy版本:5.2.5

推测原因:在最新版springboot中,已将javax依赖替换为jakarta系列的依赖;enjoy没有适配jakarta依赖

错误堆栈:

Caused by: java.lang.IllegalStateException: Failed to introspect Class [com.jfinal.template.ext.spring.JFinalViewResolver] from ClassLoader [org.springframework.boot.devtools.restart.classloader.RestartClassLoader@4cf3384d]
	at org.springframework.util.ReflectionUtils.getDeclaredMethods(ReflectionUtils.java:483)
	at org.springframework.util.ReflectionUtils.doWithLocalMethods(ReflectionUtils.java:320)
	at org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor.buildLifecycleMetadata(InitDestroyAnnotationBeanPostProcessor.java:295)
	at org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor.findLifecycleMetadata(InitDestroyAnnotationBeanPostProcessor.java:272)
	at org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor.findLifecycleMetadata(InitDestroyAnnotationBeanPostProcessor.java:201)
	at org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor.postProcessMergedBeanDefinition(InitDestroyAnnotationBeanPostProcessor.java:181)
	at org.springframework.context.annotation.CommonAnnotationBeanPostProcessor.postProcessMergedBeanDefinition(CommonAnnotationBeanPostProcessor.java:290)
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyMergedBeanDefinitionPostProcessors(AbstractAutowireCapableBeanFactory.java:1114)
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:577)
	... 34 common frames omitted
Caused by: java.lang.NoClassDefFoundError: javax/servlet/ServletContext
	at java.base/java.lang.Class.getDeclaredMethods0(Native Method)
	at java.base/java.lang.Class.privateGetDeclaredMethods(Class.java:3010)
	at java.base/java.lang.Class.getDeclaredMethods(Class.java:2329)
	at org.springframework.util.ReflectionUtils.getDeclaredMethods(ReflectionUtils.java:465)
	... 42 common frames omitted
Caused by: java.lang.ClassNotFoundException: javax.servlet.ServletContext
	at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:580)
	at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:490)
	at java.base/java.lang.Class.forName0(Native Method)
	at java.base/java.lang.Class.forName(Class.java:547)
	at org.springframework.boot.devtools.restart.classloader.RestartClassLoader.loadClass(RestartClassLoader.java:123)
	at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:490)
	... 46 common frames omitted


评论区

JFinal

2025-12-08 15:07

改一下整合方式,例如:
Engine engine = Engine.createIfAbsent(...);

然后就可以在任意地方使用了。

如果要使用原有的整合方式,可以将整合代码复制出来,改一下 jakarta 依赖就可以了

Walliam

2025-12-08 15:22

@JFinal 好的。后面希望你也能增加适配下,这样就更方便了。

akiraizanagii

2025-12-12 15:13

热门反馈

扫码入社