98 Star 574 Fork 123

闲.大赋(李家智) / Beetl

 / 详情

Caused by: java.lang.ClassNotFoundException: org.beetl.ext.spring.BeetlGroupUtilConfiguration

待办的
创建于  
2023-10-24 10:37

springboot3.1.5

com.ibeetl
sql-springboot-starter
3.26.0-RELEASE

运行后,console中输出
Caused by: java.lang.NoClassDefFoundError: org/beetl/ext/spring/BeetlGroupUtilConfiguration
at java.base/java.lang.Class.getDeclaredMethods0(Native Method)
at java.base/java.lang.Class.privateGetDeclaredMethods(Class.java:3402)
at java.base/java.lang.Class.getDeclaredMethods(Class.java:2504)
at org.springframework.util.ReflectionUtils.getDeclaredMethods(ReflectionUtils.java:465)
... 21 common frames omitted
Caused by: java.lang.ClassNotFoundException: org.beetl.ext.spring.BeetlGroupUtilConfiguration
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:520)
... 25 common frames omitted

我在beetsql-3.26.0依赖包beetl-ext-3.15.6.RELEASE.jar中只能看到fn、format、program、tag、util这几个子包,缺少spring子包

评论 (8)

小马过河 创建了任务
小马过河 修改了描述
小马过河 修改了描述
展开全部操作日志

@小马过河 好的,我晚上回去看看。

@小马过河 貌似beetlsql与springboot3集成时候,classloader方式获取有问题,我要调整一下再发一版本

期待中。。。

@小马过河

@小马过河 我看错了,我用jdk 17 是可以的,如果你也集成了beetl,那可以使用@EnableBeetl

@SpringBootApplication
@EnableBeetl
public class AllApplication {

    public static void main(String[] args) {
        SpringApplication.run(AllApplication.class, args);
    }

}

例子在

https://gitee.com/xiandafu/springboot3-beetl-beetlsql-example/tree/master/beetl-beetlsql-sample

运行AllApplication,然后访问TestController。这个是包含了beetlsql+beetl的。 关有beetlsql的也在这个工程里

输入图片说明

springboot3.1.5

<dependency>
	<groupId>com.ibeetl</groupId>
	<artifactId>beetl-springboot-starter-jdk17</artifactId>
	<version>3.15.10.RELEASE</version>
</dependency>
<dependency>
	<groupId>com.ibeetl</groupId>
	<artifactId>beetl-antlr4.11-support</artifactId>
	<version>3.15.10.RELEASE</version>
</dependency>
<dependency>
	<groupId>com.ibeetl</groupId>
	<artifactId>sql-springboot-starter</artifactId>
	<version>3.26.0-RELEASE</version>
</dependency>

BeetlConf.java中原来是
org.beetl.ext. spring .BeetlGroupUtilConfiguration
org.beetl.ext. spring .BeetlSpringViewResolver

从sb2.7升级到sb3.1.5后,改成了
org.beetl.ext. spring6 .BeetlGroupUtilConfiguration
org.beetl.ext. spring6 .BeetlSpringViewResolver

在STS4的编辑器中显示正确,但运行后Console中提示

1872 [main] WARN  org.springframework.boot.SpringApplication handleRunFailure 796 - Unable to close ApplicationContext
java.lang.IllegalStateException: Failed to introspect Class [com.website.conf.BeetlConf] from ClassLoader [jdk.internal.loader.ClassLoaders$AppClassLoader@5679c6c6]
	at org.springframework.util.ReflectionUtils.getDeclaredMethods(ReflectionUtils.java:483)
	at org.springframework.util.ReflectionUtils.doWithMethods(ReflectionUtils.java:360)
	at org.springframework.util.ReflectionUtils.getUniqueDeclaredMethods(ReflectionUtils.java:417)
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.lambda$getTypeForFactoryMethod$1(AbstractAutowireCapableBeanFactory.java:748)
	at java.base/java.util.concurrent.ConcurrentHashMap.computeIfAbsent(ConcurrentHashMap.java:1708)
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.getTypeForFactoryMethod(AbstractAutowireCapableBeanFactory.java:747)
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.determineTargetType(AbstractAutowireCapableBeanFactory.java:680)
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.predictBeanType(AbstractAutowireCapableBeanFactory.java:651)
	at org.springframework.beans.factory.support.AbstractBeanFactory.isFactoryBean(AbstractBeanFactory.java:1630)
	at org.springframework.beans.factory.support.DefaultListableBeanFactory.doGetBeanNamesForType(DefaultListableBeanFactory.java:560)
	at org.springframework.beans.factory.support.DefaultListableBeanFactory.getBeanNamesForType(DefaultListableBeanFactory.java:532)
	at org.springframework.beans.factory.support.DefaultListableBeanFactory.getBeansOfType(DefaultListableBeanFactory.java:659)
	at org.springframework.beans.factory.support.DefaultListableBeanFactory.getBeansOfType(DefaultListableBeanFactory.java:651)
	at org.springframework.context.support.AbstractApplicationContext.getBeansOfType(AbstractApplicationContext.java:1312)
	at org.springframework.boot.SpringApplication.getExitCodeFromMappedException(SpringApplication.java:867)
	at org.springframework.boot.SpringApplication.getExitCodeFromException(SpringApplication.java:855)
	at org.springframework.boot.SpringApplication.handleExitCode(SpringApplication.java:842)
	at org.springframework.boot.SpringApplication.handleRunFailure(SpringApplication.java:782)
	at org.springframework.boot.SpringApplication.run(SpringApplication.java:329)
	at org.springframework.boot.SpringApplication.run(SpringApplication.java:1306)
	at org.springframework.boot.SpringApplication.run(SpringApplication.java:1295)
	at com.website.MainApplication.main(MainApplication.java:12)
Caused by: java.lang.NoClassDefFoundError: org/beetl/ext/spring/BeetlGroupUtilConfiguration
	at java.base/java.lang.Class.getDeclaredMethods0(Native Method)
	at java.base/java.lang.Class.privateGetDeclaredMethods(Class.java:3402)
	at java.base/java.lang.Class.getDeclaredMethods(Class.java:2504)
	at org.springframework.util.ReflectionUtils.getDeclaredMethods(ReflectionUtils.java:465)
	... 21 common frames omitted
Caused by: java.lang.ClassNotFoundException: org.beetl.ext.spring.BeetlGroupUtilConfiguration
	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:520)
	... 25 common frames omitted

该项目原来在是springboot2.7.x下正常运行,使用了beetl和beetlsql,
现在尝试升级到springboot3.1.5

@小马过河 BeetlConf是你自己写的,倒是也可以,不过我没有注意到,我晚上试试吧,或者你把你的BeeetlConf发到我的xiandafu@126.com

@EnableBeetl方式呢。这是最新方式。我的例子没有报错

@SpringBootApplication
@EnableBeetl
public class AllApplication {

    public static void main(String[] args) {
        SpringApplication.run(AllApplication.class, args);
    }

}

:sweat: 这个问题已解决,是我操作问题;
是因为copyA项目(sb2.7.x)=>B项目(sb3.1.x),忘记修改B项目的rebel.xml里路径,导致运行B项目总是使用A项目的classpath中的类

登录 后才可以发表评论

状态
负责人
里程碑
Pull Requests
关联的 Pull Requests 被合并后可能会关闭此 issue
分支
开始日期   -   截止日期
-
置顶选项
优先级
参与者(2)
29 xiandafu 1678706040 7604499 mlj888 1696993715
Java
1
https://gitee.com/xiandafu/beetl.git
git@gitee.com:xiandafu/beetl.git
xiandafu
beetl
Beetl

搜索帮助