本地运行activiti-admin报错,spring加载的beanDefinition里类路径class为null

把activiti6.0版本中的子项目activiti-admin下载下来想在本地运行,运行老是报错说实例化liquibase异常,因为这个项目使用liquibase工具初始化数据库的,如果它失败了数据库就没有了,项目就不能运行了。

@Bean(name="liquibase")
    public SpringLiquibase liquibase(DataSource dataSource) {
        log.debug("Configuring Liquibase");
        SpringLiquibase liquibase = new SpringLiquibase();
        liquibase.setDataSource(dataSource);
        liquibase.setChangeLog("activiti-admin/src/main/resource/META-INF/liquibase/dbChangelog.xml");
        liquibase.setContexts("development, production");
        return liquibase;
    }

错误如下

org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'liquibase' defined in class com.activiti.conf.DatabaseConfiguration: Invocation of init method failed; nested exception is java.lang.IllegalArgumentException: Cannot resolve ServletContextResource without ServletContext

一开始以为liquibase配置错误,一直找这个工具的相关资料,但是奈何网上资料少的可怜,应该是比较小众的工具,但是创建了一个测试项目测试liquibase这样配置没有问题。

后来改变思路,调试Spring的源码,看Spring创建是怎么创建bean的

然后发现liquibase的beandefinition中的class为空,这样就无法通过反射根据类路径创建对象了,然后我有去看Spring加载beandefinition的源码,然后。。。。。。。。。。

我人没了,越看越蒙蔽,类都快找不到了,debug都要不知道跳到哪里了,哪位大佬知道麻烦解答一下 

猜你喜欢

转载自blog.csdn.net/imonkeyi/article/details/119458794