Spring引导devtools无法重新启动应用程序

时间:2017-08-07 08:47:13

标签: java spring spring-boot spring-jmx

我正在使用Spring Boot 1.5.6并获得devtools支持。但是当我改变时,devtools会尝试重新启动代码。这导致Failed to unregister LiveBeansView MBean; nested exception is javax.management.InstanceNotFoundException错误。

堆栈追踪:

14:12:00.433 [Thread-11] WARN  o.s.c.a.AnnotationConfigApplicationContext - Exception thrown from ApplicationListener handling ContextClosedEvent
org.springframework.context.ApplicationContextException: Failed to unregister LiveBeansView MBean; nested exception is javax.management.InstanceNotFoundException: DefaultDomain:application=/tenancy
    at org.springframework.context.support.LiveBeansView.unregisterApplicationContext(LiveBeansView.java:89)
    at org.springframework.context.support.AbstractApplicationContext.doClose(AbstractApplicationContext.java:985)
    at org.springframework.context.support.AbstractApplicationContext.close(AbstractApplicationContext.java:956)
    at org.springframework.boot.builder.ParentContextCloserApplicationListener$ContextCloserListener.onApplicationEvent(ParentContextCloserApplicationListener.java:102)
    at org.springframework.boot.builder.ParentContextCloserApplicationListener$ContextCloserListener.onApplicationEvent(ParentContextCloserApplicationListener.java:86)
    at org.springframework.context.event.SimpleApplicationEventMulticaster.invokeListener(SimpleApplicationEventMulticaster.java:166)
    at org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent(SimpleApplicationEventMulticaster.java:138)
    at org.springframework.context.support.AbstractApplicationContext.publishEvent(AbstractApplicationContext.java:382)
    at org.springframework.context.support.AbstractApplicationContext.publishEvent(AbstractApplicationContext.java:336)
    at org.springframework.context.support.AbstractApplicationContext.doClose(AbstractApplicationContext.java:989)
    at org.springframework.context.support.AbstractApplicationContext.close(AbstractApplicationContext.java:956)
    at org.springframework.boot.devtools.restart.Restarter.stop(Restarter.java:321)
    at org.springframework.boot.devtools.restart.Restarter$2.call(Restarter.java:258)
    at org.springframework.boot.devtools.restart.Restarter$2.call(Restarter.java:254)
    at org.springframework.boot.devtools.restart.Restarter$LeakSafeThread.run(Restarter.java:627)
Caused by: javax.management.InstanceNotFoundException: DefaultDomain:application=/tenancy
    at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.getMBean(Unknown Source)
    at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.exclusiveUnregisterMBean(Unknown Source)
    at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.unregisterMBean(Unknown Source)
    at com.sun.jmx.mbeanserver.JmxMBeanServer.unregisterMBean(Unknown Source)
    at org.springframework.context.support.LiveBeansView.unregisterApplicationContext(LiveBeansView.java:86)
    ... 14 common frames omitted

1 个答案:

答案 0 :(得分:2)

我可以解决这个问题: 发生这种情况是因为spring.jmx已启用。即使您将应用程序属性设置为spring.jmx.enabled=false,它也不起作用。因为如果您将应用程序作为Spring Boot App运行。它由STS自动启用。

<强>解决方案 从引导仪表板关闭apring.jmx.enabled。通过选择项目&gt;单击铅笔(编辑)&gt;取消选中启用JMX。

enter image description here