Created attachment 29697 [details] Tomcat log (first stop with service manager, second stop with shutdown port) Tomcat 7.0.33 is installed as Windows service and is using JDK 1.7.0_09. JmxRemoteLifecycleListener is used : <Listener className="org.apache.catalina.mbeans.JmxRemoteLifecycleListener" rmiRegistryPortPlatform="8999" rmiServerPortPlatform="9999" /> When Tomcat is stopped through the Windows service manager or the Common Daemon Service Manager, the JmxRemoteLifecycleListener listener fail to stop with the following exception : 05-Dec-2012 10:44:49.306 SEVERE [Thread-36] org.apache.catalina.mbeans.JmxRemoteLifecycleListener.destroyServer The JMX connector server could not be stopped for the Platform server java.io.IOException: Cannot bind to URL: javax.naming.NoInitialContextException: Cannot instantiate class: org.apache.naming.java.javaURLContextFactory [Root exception is java.lang.ClassNotFoundException: org/apache/naming/java/javaURLContextFactory] at javax.management.remote.rmi.RMIConnectorServer.newIOException(RMIConnectorServer.java:826) at javax.management.remote.rmi.RMIConnectorServer.stop(RMIConnectorServer.java:569) at org.apache.catalina.mbeans.JmxRemoteLifecycleListener.destroyServer(JmxRemoteLifecycleListener.java:282) at org.apache.catalina.mbeans.JmxRemoteLifecycleListener.lifecycleEvent(JmxRemoteLifecycleListener.java:226) at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:119) at org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:90) at org.apache.catalina.util.LifecycleBase.setStateInternal(LifecycleBase.java:402) at org.apache.catalina.util.LifecycleBase.setState(LifecycleBase.java:347) at org.apache.catalina.core.StandardServer.stopInternal(StandardServer.java:748) at org.apache.catalina.util.LifecycleBase.stop(LifecycleBase.java:232) at org.apache.catalina.startup.Catalina.stopServer(Catalina.java:486) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:601) at org.apache.catalina.startup.Bootstrap.stopServer(Bootstrap.java:371) at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:453) Caused by: javax.naming.NoInitialContextException: Cannot instantiate class: org.apache.naming.java.javaURLContextFactory [Root exception is java.lang.ClassNotFoundException: org/apache/naming/java/javaURLContextFactory] at javax.naming.spi.NamingManager.getInitialContext(NamingManager.java:674) at javax.naming.InitialContext.getDefaultInitCtx(InitialContext.java:307) at javax.naming.InitialContext.init(InitialContext.java:242) at javax.naming.InitialContext.<init>(InitialContext.java:216) at javax.management.remote.rmi.RMIConnectorServer.stop(RMIConnectorServer.java:558) ... 15 more Caused by: java.lang.ClassNotFoundException: org/apache/naming/java/javaURLContextFactory at java.lang.Class.forName0(Native Method) at java.lang.Class.forName(Class.java:264) at com.sun.naming.internal.VersionHelper12.loadClass(VersionHelper12.java:63) at javax.naming.spi.NamingManager.getInitialContext(NamingManager.java:671) ... 19 more If Tomcat is stopped through the use of the shutdown port, the JmxRemoteLifecycleListener listener stop gently.
Thanks for the report. This has been fixed in trunk and 7.0.x and will be included in 7.0.35 onwards.