【发布时间】:2018-05-23 06:30:14
【问题描述】:
我在我的 springboot 项目中使用 Intellij IDE,在运行我的 spring boot 项目时它工作正常。但是当我使用 mvn 包创建战争并使用 java -jar project.war 运行时,它会抛出以下错误
警告
2018-05-23 11:05:08.635 警告 13025 --- [主要] ationConfigEmbeddedWebApplicationContext:遇到异常 在上下文初始化期间 - 取消刷新尝试: org.springframework.beans.factory.UnsatisfiedDependencyException: 创建名为 HibernateJpaAutoConfiguration' 的 bean 时出错: 通过构造函数参数 0 表示的不满足的依赖关系; 嵌套异常是 org.springframework.beans.factory.BeanCreationException:错误 创建在类路径资源中定义的名称为“dataSource”的bean [com/myproject/config/DefaultDataSource.class]:通过 Bean 实例化 工厂方法失败;嵌套异常是 org.springframework.beans.BeanInstantiationException:失败 实例化 [com.mchange.v2.c3p0.ComboPooledDataSource]:工厂方法 'dataSource' 抛出异常;嵌套异常是 java.lang.ExceptionInInitializerError
异常
启动 ApplicationContext 时出错。显示自动配置 报告启用“调试”后重新运行您的应用程序。 2018-05-23 11:05:10.854 错误 13025 --- [主要] os.boot.SpringApplication : 应用程序启动失败 org.springframework.beans.factory.UnsatisfiedDependencyException: 创建具有名称的 bean 时出错 'org.springframework.boot.autoconfigure.orm.jpa.HibernateJpaAutoConfiguration':通过构造函数参数0表示的不满足的依赖关系;嵌套异常是 org.springframework.beans.factory.BeanCreationException:创建类路径资源 [com/myproject/config/DefaultDataSource.class] 中定义的名称为“dataSource”的 bean 时出错:通过工厂方法进行 Bean 实例化失败;嵌套异常是 org.springframework.beans.BeanInstantiationException:无法实例化 [com.mchange.v2.c3p0.ComboPooledDataSource]:工厂方法“dataSource”抛出异常;嵌套异常是 java.lang.ExceptionInInitializerError
代码
@Configuration
public class DefaultDataSource {
@Autowired
DataBaseCreds dataBaseCreds;
@Bean
@Primary
public ComboPooledDataSource dataSource() {
ComboPooledDataSource dataSource = new ComboPooledDataSource();
try {
dataSource.setDriverClass(dataBaseCreds.getDB_DRIVER());
} catch (PropertyVetoException e) {
}
dataSource.setJdbcUrl(dataBaseCreds.getDB_URL());
dataSource.setUser(dataBaseCreds.getDB_USERNAME());
dataSource.setPassword(dataBaseCreds.getDB_PASSWORD());
dataSource.setMaxPoolSize(200);
return dataSource;
}
}
【问题讨论】:
-
最好不要再嵌套
ExceptionInInitializerError。 -
对不起,伙计们,我的错误有两个版本的 c3p0 库打包战争文件 /WEB-INF/lib 删除了一个类似魅力的作品 - 感谢阅读