SpringCloud启动异常Stopping service [Tomcat]
问题场景:
领导让我搭建一套Jenkins实现自动化部署,项目是SpringCloud项目,配置的过程很顺利,给我提供了一台服务器做部署测试(服务器以前是做dev环境,很长时间没人用了)
我把所有项目配置上,但至少一半构建失败,异常信息:[main] INFO o.a.catalina.core.StandardService -Stopping service [Tomcat]
启动日志的最后一行就是这个,没有任何有用的信息,找了很多资料,耽误了2天时间终于解决了。
解决思路:首先要明确一点,既然是Tomcat自动停止了,肯定是有代码报错,只是你的项目没有打印错误日志。
解决办法:
1. 给启动类加上try..catch...并打印catch的信息。
@SpringBootApplication
public class Application {
static Logger logger = LoggerFactory.getLogger(Application .class);
public static void main(String[] args) {
try {
SpringApplication.run(Application .class, args);
logger.info("启动成功!");
} catch (Exception e) {
logger.error("启动异常", e);
} }
}
2. 由于Tomcat的默认日志工具和SpringCloud的默认日志工具是不一样的:Tomcat使用的是log4j;SpringBoot使用的是Logback。
我配置的也是Logback,所以只能输出logback日志,而tomcat的log4j的日志并没有输出。这种情况我们采用Slf4j,Slf4j并不是日志输出工具,他的作用是日志继承接口,用于整合不同的日志工具。
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>jcl-over-slf4j</artifactId>
<version>1.8.0-beta4</version>
</dependency>
这个依赖可以将log4j输出到slf4j,从而用sl4j输出。
经过这两个配置就可以看到错误日志了。
我的错误信息是: java.lang.IllegalArgumentException: Could not resolve placeholder 'kafka.ip' in value "${kafka.ip}"
配置文件都放在Spring Cloud Config里,我用idea本地使用dev服务器的配置是可以正常启动的。再检查服务器里的配置文件,发现config的文件是读取本地的, 并不是实时从git上来取,如下图:
config-common.properties
config-log.properties
config-mongodb.properties
config-mysql.properties
........
在服务器上每个项目目录有一个config文件夹,config文件夹有配置:application.properties bootstrap.properties logback-spring.xml

SpringCloud的jar启动原则,如果本地有config和lib文件夹,是不会读取jar包里面的config和lib的。我的问题在于bootstrap.properties不是最新的,重新传一份再执行java命令,启动成功。
SpringCloud启动异常Stopping service [Tomcat]的更多相关文章
- org.apache.catalina.core.StandardService - Stopping service [Tomcat]
今天在启动springboot项目突然启动失败,但是在测试日志文件,以为是日志出错,下面这个是logback打印的异常信息. 2019-05-30 15:09:10.686 [restartedMai ...
- spring boot 2 内嵌Tomcat Stopping service [Tomcat]
我在使用springboot时,当代码有问题时,发现控制台打印下面信息: Connected to the target VM, address: '127.0.0.1:42091', transpo ...
- Stopping service [Tomcat] Disconnected from the target VM, address:XXXXXX解决方案
原文出处:https://blog.csdn.net/u013294097/article/details/90677049 Stopping service [Tomcat] Disconnecte ...
- Spring Boot启动的报错 Stopping service [Tomcat]
我遇到的问题是项目中使用java_websocket的WebSocketClient,由于性能要求,需要再Controller直接继承WebSocketClient, 在项目启动过程中调试进入spri ...
- stopping service [tomcat],服务未启动
1. 在主类中添加日志打印,查看错误: 2. 我的错误是因为两个controller含有相同的路径
- Springboot + Stopping service [Tomcat]+ Process finished with exit code 0
在Springboot 的版本为: <version>1.5.10.RELEASE</version> 原因:代码中有非法格式的结构,及代码写错啦,例如: <result ...
- Address already in use: JVM_Bind,tomcat启动异常
严重: StandardServer.await: create[8050]: java.net.BindException: Address already in use: JVM_Bind tom ...
- ubuntu设置自定义程序开机启动(本文以tomcat为例)
准备工作: 由于tomcat要用到Java,所以需要安装jdk,并配置好java的环境变量.这部分不再赘述,而且不是本文的重点. 方法一.加入/etc/rc.loalroot@ubuntu:~# vi ...
- Linux下Mysql启动异常排查方案
遇到Mysql启动异常问题,可以从以下几个方面依次进行问题排查: (1)如果遇到“Can't connect to local MySQL server through socket '/tmp/my ...
随机推荐
- Maven一键部署Springboot到Docker仓库,为自动化做准备
1 前言 前面<Springboot整合MongoDB的Docker开发,其它应用也类似>讲解了如何做Docker开发.如何把Springboot应用打包成一个镜像,但它是手动的,本文将讲 ...
- 双向绑定和 vuex 是否冲突
在严格模式下确实有问题,解决方案: https://vuex.vuejs.org/zh/guide/forms.html
- 通过Windows Visual Studio远程调试WSL2中的.NET Core Linux应用程序
最近两天在Linux中调试.NET Core应用程序,同时我发现在Linux中调试.NET Core应用程序并不容易.一直习惯在Visual Studio中进行编码和调试.现在我想的是可以简单快速的测 ...
- Go的100天之旅-02基本语法
基本语法 Go关键字 下面是Go的25个关键字: break default func interface select case defer go map struct chan else goto ...
- ajax配合art-template模板引擎的使用
最近才接触js的模板引擎听说相比以前使用的js foreach加载后台返回的json数据简便很多而且效率方面也很不错.今天自己玩了一下 后台使用的是.net mvc,数据库脚本就不提供了,返回的Jso ...
- [译]使用DOT语言和GraphvizOnline来可视化你的ASP.NETCore3.0终结点01
这是系列文章中的第一篇:使用GraphvizOnline可视化ASP.NETCore3.0终结点.. 第1部分-使用DOT语言来可视化你的ASP.NETCore3.0终结点(本文) 第2部分-向ASP ...
- 尝鲜刚发布的 SpringFox 3.0.0,以前造的轮子可以不用了...
最近 SpringFox 3.0.0 发布了,距离上一次大版本2.9.2足足有2年多时间了.可能看到这个名字,很多读者会有点陌生.但是,只要给大家看一下这两个依赖,你就知道了! <depende ...
- Vue全家桶之一Vue(基础知识篇)
全家桶:Vue本身.状态管理.路由. 异步组件:
- 详解 CmProcess 跨进程通信的实现
CmProcess 是 Android 一个跨进程通信框架,整体代码比较简单,总共 20 多个类,能够很好的便于我们去了解跨进程实现的原理. 个人猜测 CmProcess 也是借鉴了 VirtualA ...
- Springboot启动扩展点超详细总结,再也不怕面试官问了
1.背景 Spring的核心思想就是容器,当容器refresh的时候,外部看上去风平浪静,其实内部则是一片惊涛骇浪,汪洋一片.Springboot更是封装了Spring,遵循约定大于配置,加上自动装配 ...