tomcat报错:org.apache.catalina.loader.WebappClassLoaderBase.checkStateForResourceLoading Illegal access: this web application instance has been stopped already.
关于一个HTTP头验证出错的问题:
org.apache.catalina.loader.WebappClassLoaderBase.checkStateForResourceLoading Illegal access: this web application instance has been stopped already. Could not load [META-INF/services/javax.xml.stream.XMLInputFactory]. The following stack trace is thrown for debugging purposes as well as to attempt to terminate the thread which caused the illegal access. java.lang.IllegalStateException: Illegal access: this web application instance has been stopped already. Could not load [META-INF/services/javax.xml.stream.XMLInputFactory]. The following stack trace is thrown for debugging purposes as well as to attempt to terminate the thread which caused the illegal access.
意思是:
org.apache.catalina.loader.WebappClassLoaderBase.checkStateForResourceLoading非法访问:此web应用程序实例已停止。无法加载[META-INF/services/javax.xml.stream.XMLInputFactory]。为了调试以及终止导致非法访问的线程,将抛出以下堆栈跟踪。 java.lang.IllegalStateException:非法访问:此web应用程序实例已停止。无法加载[META-INF/services/javax.xml.stream.XMLInputFactory]。为了调试以及终止导致非法访问的线程,将抛出以下堆栈跟踪。
此处产生问题的原因是:一个tomcat启动了两个进程。
为什么会产生两个进程呢? 在网上找了一大堆资料后,大致说法如下:
1、sh shutdown.sh
不能完全杀死tomcat或者是不能立马杀死tomcat
2、tomcat的con/server.xml中的context属性reloadable默认为true导致。
由于windows环境下,Tomcat被占用是会自动弹窗报错的,此时若关掉窗口在重启tomcat是可以再运行项目的,但由此就会引发这个一个tomcat开两个进程的问题,进而导致URL出错等问题。
解决方法是:关掉占用端口的进程即可。
来源:https://www.cnblogs.com/lizm166/p/12600359.html