tomcat突然启动不了,报错:


警告: Failed to unregister MBean with name [Catalina:j2eeType=Servlet,name=UploadServlet,WebModule=//localhost/,J2EEApplication=none,J2EEServer=none] during component destruction

javax.management.InstanceNotFoundException: Catalina:j2eeType=Servlet,name=UploadServlet,WebModule=//localhost/,J2EEApplication=none,J2EEServer=none

at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.getMBean(DefaultMBeanServerInterceptor.java:1095)

at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.exclusiveUnregisterMBean(DefaultMBeanServerInterceptor.java:427)

at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.unregisterMBean(DefaultMBeanServerInterceptor.java:415)

at com.sun.jmx.mbeanserver.JmxMBeanServer.unregisterMBean(JmxMBeanServer.java:546)

at org.apache.catalina.util.LifecycleMBeanBase.unregister(LifecycleMBeanBase.java:194)

at org.apache.catalina.util.LifecycleMBeanBase.destroyInternal(LifecycleMBeanBase.java:73)

at org.apache.catalina.core.ContainerBase.destroyInternal(ContainerBase.java:1247)

at org.apache.catalina.util.LifecycleBase.destroy(LifecycleBase.java:305)

at org.apache.catalina.core.ContainerBase.removeChild(ContainerBase.java:1041)

at org.apache.catalina.core.StandardContext.removeChild(StandardContext.java:4123)

at org.apache.catalina.startup.ContextConfig.configureStop(ContextConfig.java:941)

at org.apache.catalina.startup.ContextConfig.lifecycleEvent(ContextConfig.java:395)

at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:117)

at org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:90)

at org.apache.catalina.core.Stand

然后怎么tomcat都启动不了,查了半天,找到解决办法:

http://forum.spring.io/forum/other-spring-related/ejb/5542-application-on-tomcat-calling-some-ejb-s-on-weblogic

就是

jdk的jre/lib/security/java.policy 里加上

permission javax.management.MBeanTrustPermission "register";

另外就是要kill 掉所有tomcat的进程,使用shutdown -force。


重启OK!