Error when restarting Tomcat
Illegal Access:this Web Application instance has been stopped already. Could not load Oracle.net.mesg.Message. The eventual following stack trace is caused by a error thrown for debugging purposes as well as to attempt to terminate The thread which caused the illegal access, and has no functional impact.
Java.lang.IllegalStateException
At Org.apache.catalina.loader.WebappClassLoader.loadClass (webappclassloader.java:1566)
At Org.apache.catalina.loader.WebappClassLoader.loadClass (webappclassloader.java:1526)
At Java.util.resourcebundle$control.newbundle (resourcebundle.java:2289)
At Java.util.ResourceBundle.loadBundle (resourcebundle.java:1364)
At Java.util.ResourceBundle.findBundle (resourcebundle.java:1328)
At Java.util.ResourceBundle.findBundle (resourcebundle.java:1282)
At Java.util.ResourceBundle.findBundle (resourcebundle.java:1282)
At Java.util.ResourceBundle.getBundleImpl (resourcebundle.java:1224)
At Java.util.ResourceBundle.getBundle (resourcebundle.java:705)
At Oracle.net.ns.Message11.getMessage (Unknown Source)
At Oracle.net.ns.NetException.getMessage (Unknown Source)
At Oracle.jdbc.ttc7.TTC7Protocol.connect (ttc7protocol.java:1695)
At Oracle.jdbc.ttc7.TTC7Protocol.logon (ttc7protocol.java:214)
At Oracle.jdbc.driver.oracleconnection.<init> (oracleconnection.java:346)
At Oracle.jdbc.driver.OracleDriver.getConnectionInstance (oracledriver.java:468)
At Oracle.jdbc.driver.OracleDriver.connect (oracledriver.java:314)
At Com.mchange.v2.c3p0.DriverManagerDataSource.getConnection (drivermanagerdatasource.java:134)
At Com.mchange.v2.c3p0.WrapperConnectionPoolDataSource.getPooledConnection (Wrapperconnectionpooldatasource.java : 182)
At Com.mchange.v2.c3p0.WrapperConnectionPoolDataSource.getPooledConnection (Wrapperconnectionpooldatasource.java : 171)
At Com.mchange.v2.c3p0.impl.c3p0pooledconnectionpool$1pooledconnectionresourcepoolmanager.acquireresource ( c3p0pooledconnectionpool.java:137)
At Com.mchange.v2.resourcepool.BasicResourcePool.doAcquire (basicresourcepool.java:1014)
At com.mchange.v2.resourcepool.basicresourcepool.access$800 (basicresourcepool.java:32)
At Com.mchange.v2.resourcepool.basicresourcepool$acquiretask.run (basicresourcepool.java:1810)
At Com.mchange.v2.async.threadpertaskasynchronousrunner$taskthread.run (threadpertaskasynchronousrunner.java:255 )
The reason is that when Tomcat restarts, the previous Tomcat thread has not been completely shut down, and the latest boot Tomcat will report this exception as long as the reloadable= "true" in Tomcat's server.xml is changed to False OK
We have seen this post and said that no corresponding configuration, in fact, exist in the context node, and I intercepted the Tomcat in a Chinese document comments:
Context (Represents a Web application, usually a war file, see the servlet specification for specific information about the war) |
DocBase |
The path to the application or the path where the war file is stored |
Path |
Represents the prefix of the URL for this Web application, so the requested URL is http://localhost:8080/path/**** |
Reloadable |
This property is important, and if true, Tomcat will automatically detect changes in the application's/web-inf/lib and/web-inf/classes directories, automatically load new applications, and we can change the application without having to restart Tomcat |
Resolve this Web application instance have been stopped already