java - Spring IllegalState 无法在单元测试中创建数据源不稳定行为
问题描述
几天前,在运行测试时,我的服务器一直有不稳定的行为。当测试开始时——没有任何明显的原因。我得到:
java.lang.IllegalStateException: Failed to load ApplicationContext
...
Caused by: org.springframework.context.ApplicationContextException: Unable to start embedded container; nested exception is org.springframework.boot.context.embedded.EmbeddedServletContainerException: Unable to start embedded Tomcat
...
Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'resourceServerConfig': Injection of autowired dependencies failed;
...Or error creating datasource.
我从这里得到的是无法正确读取属性文件。我已强制应用程序读取属性文件,但仍然出现相同类型的错误。
自出现错误(Firebase admin SDK)以来,我删除了所有添加的依赖项,并删除了所有可能相关的配置。但是仍然得到完全出乎意料的结果,有时服务器运行没有问题,有时它只是失败并失败,唯一似乎定期恢复工作的想法是清理依赖项(mvn clean install -U)。
我在 Intellij Idea 2018.1.5 上运行服务器。
任何关于正在发生的事情的暗示将不胜感激。
解决方案
如果 mvn clean 和 -U 有效,我怀疑由于某种原因,您的 Maven 依赖项设置带来了多个工件,一个带有发布版本,另一个带有 SNAPSHOT 版本,并且两个工件都存在于同一个目标目录中(例如,/target /WEB-INF/lib 如果你的是在 Tomcat 中运行的 webapp)。
还有一种可能是您的本地 maven 存储库($YOUR_USER_NAME/.m2/repository/~ 如果您是 Mac),有旧的 SNAPSHOT,里面有错误,或者不是您要使用的错误,并且它会不断更新最新的当您使用带有 -U 的运行 mvn 但当您在没有 -U 的情况下运行 mvn 时,mvn 会返回错误的 SNAPSHOT。
或者
包含单元测试的 mvn 模块可能具有与预期不同的工件版本,这取决于您的 maven 模块的组织方式。
首先尝试删除本地 maven 存储库(如果您知道它是什么,则删除 .m2/reposityr/ 或特定 repo 目录下的所有内容)并执行 mvn clean build。
推荐阅读
- android - 如何使卡片视图消失?
- angular - ng build 和 ng build --watch 之间的捆绑输出不一致
- postgresql - 在主机上的客户端 docker 和 postgres 服务器之间连接
- node.js - 两个公共子网无法与私有 ip 通信
- linear-programming - 使用 Google OR-Tools 对市场进行建模
- angularjs - 我收到一个错误错误:[$injector:unpr] 未知提供者:$resourceProvider <- $resource <- productResource
- bash - 仅当其他进程不使用时才清理文件
- html - 如何定位具有 position:fixed 的 NAV;在中心?
- excel - Excel VBA 数据抓取 - 并非所有数据都被提取
- list - 如何将元组列表拆分为列表元组?