我按照spring示例的指导在我的应用程序中配置了两个数据源:https://github.com/spring-cloud/spring-cloud-task/blob/master/spring-cloud-task-samples/multiple-datasources。我使用的spring boot版本是:2.0.0.RELEASE我使用的spring.cloud.task.version是:1.2.2.RELEASE。
这个应用程序在我的本地计算机上运行得很好,但当部署到亚马逊网络服务时,我得到了以下关于class:CustomTaskConfigurer.java定义的错误。它的定义与这里相同:https://github.com/spring-cloud/spring-cloud-task/blob/master/spring-cloud-task-samples/multiple-datasources/src/main/java/io/spring/configuration/CustomTaskConfigurer.java
错误消息如下:
异常为org.springframework.beans.factory.BeanCreationException:错误,创建名为'org.springframework.cloud.task.configuration.SimpleTaskConfiguration':的bean时初始化方法调用失败;嵌套异常为org.springframework.beans.factory.BeanCreationException:错误,创建文件中定义的名为'customTaskConfigurer‘的bean时通过构造函数实例化失败;嵌套异常为org.springframework.beans.BeanInstantiationException:无法实例化com.xxx.configuration.CustomTaskConfigurer$$EnhancerBySpringCGLIB$$bc80cd46:构造函数引发异常;嵌套异常为java.lang.IllegalStateException:无法创建TaskExecutionDao。
发布于 2018-12-28 15:18:28
此错误的根本原因是,当我在本地开发应用程序时,我为postgresql配置了一个本地数据源bean,如下所示:@Bean @主@配置属性(“spring.datasource”)公共返回DataSourceBuilder.create().type(HikariDataSource.class).build();(){ HikariDataSource sourceDataSource}
此bean读取application.properties文件中的属性,这些属性标识本地postgres的用户名和密码url。当此应用程序迁移到云端时,它将连接到云数据库,而不是本地数据库,这意味着url、用户名和密码不再正确。添加云的配置后,此错误消失了。
但是这个异常堆栈跟踪只告诉您它无法创建taskExecutionDao,当看到这样的错误消息时,用户很难修复这个问题
发布于 2019-03-21 01:01:32
如果这是一个多数据源问题,您可以尝试将其标记为@Primary。提供更好的堆栈跟踪是有帮助的。
https://stackoverflow.com/questions/53828659
复制相似问题