概述:
突然异常拦住我了。
参考:https://stackoverflow.com/questions/8492454/eclipse-tomcat-error-document-base-does-not-exist-or-is-not-a-readable-director
13-dic-2017 17.00.37 org.apache.catalina.core.StandardContext resourcesStart
GRAVE: Error starting static Resources
java.lang.IllegalArgumentException: Document base /home/claudio/workspace/.metadata/.plugins/org.eclipse.wst.server.core/tmp0/wtpwebapps/Preventivi does not exist or is not a readable directory
at org.apache.naming.resources.FileDirContext.setDocBase(FileDirContext.java:140)
at org.apache.catalina.core.StandardContext.resourcesStart(StandardContext.java:4880)
at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5060)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1525)
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1515)
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334)
at java.util.concurrent.FutureTask.run(FutureTask.java:166)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
at java.lang.Thread.run(Thread.java:636)
用eclipse启动tomcat应用发现报错了,这时候简单粗暴的方法,在标签Servers页面,删除tomcat,然后再添加Tomcat就好了。一般罪魁祸首就是server.xml的Context标签,你可以先移除Context标签的内容,再次启动tomcat,实在不能解决办法就是删(慎重操作,记得备份、备份、备份、eclipse对于tomcat配置文件)
异常二:
严重: Error starting static Resources
java.lang.IllegalArgumentException: Document base D:\install\apache-tomcat-7.0.78-windows-x64\apache-tomcat-7.0.78\webapps\context does not exist or is not a readable directory
at org.apache.naming.resources.FileDirContext.setDocBase(FileDirContext.java:136)
at org.apache.catalina.core.StandardContext.resourcesStart(StandardContext.java:5247)
at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5436)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:145)
at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:899)
at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:875)
at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:652)
at org.apache.catalina.startup.HostConfig.deployDescriptor(HostConfig.java:679)
at org.apache.catalina.startup.HostConfig$DeployDescriptor.run(HostConfig.java:1966)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:748)
看异常发现它去找context文件,纳闷,其实tomcat说了配置文件隔离,只是说context.xml(就是上下文)文件配置内容隔离,并不是所有配置,而且这个配置文件为你应用名,
例如tomcat 有manager应用,那么这个配置文件可以写成复制context.xml到CATALINA_HOME/conf/[EngineName]/
[Hostname]/ 目录下改名为manager.xml 即可
EngineName(引擎名):Catalina Hostname(主机名):localhost