- 具体报错如下:
[main] INFO org.apache.catalina.core.StandardService - Starting service [Tomcat] [main] INFO org.apache.catalina.core.StandardEngine - Starting Servlet engine: [Apache Tomcat/9.0.52] [main] INFO o.a.c.c.C.[Tomcat].[localhost].[/earlywarning] - Initializing Spring embedded WebApplicationContext [main] INFO o.s.b.w.s.c.ServletWebServerApplicationContext - Root WebApplicationContext: initialization completed in 1546 ms [main] INFO ru.yandex.clickhouse.ClickHouseDriver - Driver registered [main] INFO org.apache.catalina.core.StandardService - Stopping service [Tomcat] [main] INFO o.s.b.a.l.ConditionEvaluationReportLoggingListener - Error starting ApplicationContext. To display the conditions report re-run your application with 'debug' enabled.
- 排查过程:
在启动项目时发现日志中输出了如上信息,但是奇怪的是本地运行正常,没有出现这样的报错,经过比对测试环境配置文件和生产环境配置文件发现,在配置文件中
新加的两个外部接口的字段名不一致,导致生产环境代码中读取不到这个值(代码如下):
@Value("${boot.warningToFault.path}") private String warnToFaultPath;
- 解决方法:
将两个环境中该字段名统一即可。
- 反思:
必须保持一致的字段或者代码尽量复制,避免手敲产生的错误,如上面的例子、或者是和mapper文件对应的XML文件名等。