问题001.解决SpringBoot启动失败 Unregistering JMX-exposed beans on shutdown

开发环境

  • Ubuntu 17.10
  • jdk 1.8
  • STS 3.8.3.RELEASE
  • SpringBoot 2.0.0.RELEASE

使用SpringBoot2.0搭建项目的时候,一启动就碰上这个异常,tomcat没有启动

2017-07-13 17:23:16.362  INFO 23232 --- [           main] com.jssz.demo1.Demo1Application          : Starting MemberController on linux with PID 2110 (/home/mo/learn/j2ee/Spring/springboot2-parent/target/classes started by mo in /home/mo/learn/j2ee/Spring/springboot2-parent)
2017-07-13 17:23:16.367  INFO 23232 --- [           main] com.jssz.demo1.Demo1Application          : No active profile set, falling back to default profiles: default
2017-07-13 17:23:16.534  INFO 23232 --- [           main] s.c.a.AnnotationConfigApplicationContext : Refreshing org.springframework.context.annotation.AnnotationConfigApplicationContext@7a36aefa: startup date [Thu Jul 13 17:23:16 CST 2017]; root of context hierarchy
2017-07-13 17:23:17.856  INFO 23232 --- [           main] o.s.j.e.a.AnnotationMBeanExporter        : Registering beans for JMX exposure on startup
2017-07-13 17:23:17.882  INFO 23232 --- [           main] org.mkh.member.controller.MemberController          : Started MemberController in 2.133 seconds (JVM running for 2.865)
2017-07-13 17:23:17.883  INFO 23232 --- [       Thread-2] s.c.a.AnnotationConfigApplicationContext : Closing org.springframework.context.annotation.AnnotationConfigApplicationContext@7a36aefa: startup date [Thu Jul 13 17:23:16 CST 2017]; root of context hierarchy
2017-07-13 17:23:17.884  INFO 23232 --- [       Thread-2] o.s.j.e.a.AnnotationMBeanExporter        : Unregistering JMX-exposed beans on shutdown

网上有各种各样的解决方法,主要有四种:

  1. 将SpringBoot的版本降级,降到1.5.*,亲测可以,但是这种方法治标不治本,脱离我们要使用2.0的本意
  2. pom.xml中加入 spring-boot-starter-tomcat 依赖,并且去掉provide的作用范围。这种方法主要是针对那些没有使用spring-boot-starter-web依赖的项目,对我来说没有用。
  3. pom.xml中加入 spring-boot-starter-web 依赖,犯这种错误的我觉得是很不应该的,做web项目应该第一时间加入的就是这个依赖,这个依赖默认已经继承了tomcat的依赖,所以不用加入第二种方法的tomcat依赖。因为我没犯这种错误,所以这个解决方法对我来说根本没用。
  4. maven依赖文件因为网络问题没有完全下载成功,主要的问题是tomcat没有下载完整,虽然STS没有报错。先清除SpringBoot的依赖(打开路径:/home/mo/.m2/repository/org/springframework/boot,把文件清除掉),然后在清除tomcat依赖(路径:/home/mo/.m2/repository/org/apache/tomcat),然后在STS中用Maven Update项目,然后重新运行SpringBoot项目,问题解决。这种方法要确保网络的通畅

我遇到的就是第四种,从版本1.5.10开始就有这个问题,当时没想到是依赖的问题,如果还有其他的情况,欢迎补充。

补充一种更简单的操作:
删除了~/.m2目录下的所有缓存包,然后重新执行下面的命令

mvn spring-boot:run

(参考:https://blog.csdn.net/dongfengkuayue/article/details/53928165)

你可能感兴趣的:(问题001.解决SpringBoot启动失败 Unregistering JMX-exposed beans on shutdown)