问题

IDEA中,启动Spring boot项目,控制台提示org.springframework.boot.devtools.restart.SilentExitExceptionHandler$SilentExitException的异常。

org.springframework.boot.devtools.restart.SilentExitExceptionHandler$SilentExitException
    at org.springframework.boot.devtools.restart.SilentExitExceptionHandler.exitCurrentThread(SilentExitExceptionHandler.java:90)
    at org.springframework.boot.devtools.restart.Restarter.immediateRestart(Restarter.java:180)
    at org.springframework.boot.devtools.restart.Restarter.initialize(Restarter.java:164)
    at org.springframework.boot.devtools.restart.Restarter.initialize(Restarter.java:554)
    at org.springframework.boot.devtools.restart.RestartApplicationListener.onApplicationStartingEvent(RestartApplicationListener.java:73)
    at org.springframework.boot.devtools.restart.RestartApplicationListener.onApplicationEvent(RestartApplicationListener.java:49)
    at org.springframework.context.event.SimpleApplicationEventMulticaster.doInvokeListener(SimpleApplicationEventMulticaster.java:172)
    at org.springframework.context.event.SimpleApplicationEventMulticaster.invokeListener(SimpleApplicationEventMulticaster.java:165)
    at org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent(SimpleApplicationEventMulticaster.java:139)
    at org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent(SimpleApplicationEventMulticaster.java:127)
    at org.springframework.boot.context.event.EventPublishingRunListener.starting(EventPublishingRunListener.java:70)
    at org.springframework.boot.SpringApplicationRunListeners.starting(SpringApplicationRunListeners.java:47)
    at org.springframework.boot.SpringApplication.run(SpringApplication.java:302)
    at org.springframework.boot.SpringApplication.run(SpringApplication.java:1214)
    at org.springframework.boot.SpringApplication.run(SpringApplication.java:1203)
    at com.ux.receive.ReceiveApplication.main(ReceiveApplication.java:17)

解决方案

问题出在启动入口文件 ***Application.java中,

public class ReceiveApplication {
   private final static Log logger = LogFactory.getLog(ReceiveApplication.class);

   public static void main(String[] args) {
      try {
         SpringApplication.run(ReceiveApplication.class, args);
         logger.info("Receive Service项目启动完成");
      } catch (Exception e){
         e.printStackTrace();
      }
   }
}

把“SpringApplication.run(ReceiveApplication.class, args);”放到try catch外面(或删掉try catch),或在catch中不要抛出异常,就能正常显示了。

实际上在启动的时候,也没有必要try catch。

这个问题是在spring-boot-devtools引起的,但只有少数情况下会出现这种异常,如果有就按上述方法解决。

另外,spring-boot-devtools可以使开发调试时程序随时热部署,不用每次手工启停,很大程度提高了我们调试效率。

 

 

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐