Tomcat 7启动自身项目报错,部署项目可正常运行(未解决)

错误信息(摘取其中描述部分,后附详文):

严重: Error starting static Resources
java.lang.IllegalArgumentException: Document base /home/tomcat_aaaa/tomcat_7.0_8087_aaaa/temp/webapps/docs does not exist or is not a readable directory
……
严重: ContainerBase.addChild: start:
org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost].StandardContext[/docs]]

Caused by: org.apache.catalina.LifecycleException: Error in resourceStart()
……
严重: Error deploying web application directory /home/tomcat_aaaa/tomcat_7.0_8087_aaaa/webapps/docs
java.lang.IllegalStateException: ContainerBase.addChild: start: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost].StandardContext[/docs]]
……
严重: Error starting static Resources
java.lang.IllegalArgumentException: Document base /home/tomcat_aaaa/tomcat_7.0_8087_aaaa/temp/webapps/examples does not exist or is not a readable directory
……
严重: ContainerBase.addChild: start:
org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost].StandardContext[/examples]]

Caused by: org.apache.catalina.LifecycleException: Error in resourceStart()
……
严重: Error deploying web application directory /home/tomcat_aaaa/tomcat_7.0_8087_aaaa/webapps/examples
java.lang.IllegalStateException: ContainerBase.addChild: start: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost].StandardContext[/examples]]
……
严重: Error starting static Resources
java.lang.IllegalArgumentException: Document base /home/tomcat_aaaa/tomcat_7.0_8087_aaaa/temp/webapps/host-manager does not exist or is not a readable directory
……
严重: ContainerBase.addChild: start:
org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost].StandardContext[/host-manager]]

Caused by: org.apache.catalina.LifecycleException: Error in resourceStart()
……
严重: Error deploying web application directory /home/tomcat_aaaa/tomcat_7.0_8087_aaaa/webapps/host-manager
java.lang.IllegalStateException: ContainerBase.addChild: start: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost].StandardContext[/host-manager]]
……
严重: Error starting static Resources
java.lang.IllegalArgumentException: Document base /home/tomcat_aaaa/tomcat_7.0_8087_aaaa/temp/webapps/manager does not exist or is not a readable directory
……
严重: ContainerBase.addChild: start:
org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost].StandardContext[/manager]]

Caused by: org.apache.catalina.LifecycleException: Error in resourceStart()
……
严重: Error deploying web application directory /home/tomcat_aaaa/tomcat_7.0_8087_aaaa/webapps/manager
java.lang.IllegalStateException: ContainerBase.addChild: start: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost].StandardContext[/manager]]
……
严重: Error starting static Resources
java.lang.IllegalArgumentException: Document base /home/tomcat_aaaa/tomcat_7.0_8087_aaaa/temp/webapps/ROOT does not exist or is not a readable directory
……
严重: ContainerBase.addChild: start:
org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost].StandardContext[]]

Caused by: org.apache.catalina.LifecycleException: Error in resourceStart()
……
严重: Error deploying web application directory /home/tomcat_aaaa/tomcat_7.0_8087_aaaa/webapps/ROOT
java.lang.IllegalStateException: ContainerBase.addChild: start: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost].StandardContext[]]
……

错误还是很规律的,docs,examples,host-manager,manager,ROOT,正好对应webapp下面的五个文件夹。
都先去tomcat/temp/webapps/目录下找一番,这个目录下确实没有这些东西,而且正常运行的tomcat这个temp目录下也没有webapps目录。比较费解。
然后是个类似[StandardEngine[Catalina].StandardHost[localhost].StandardContext[……]]的东西,网上关于这个说的倒是不少,jar包冲突,删除文件等等,开始我也找了,并不存在他们说的那些文件,后来测试的时候发现自己的项目在正常运行,应该不是这个问题。
然后怀疑web.xml中的<servlet-mapping>配置有问题,我这里配的是

<servlet-mapping>
  <servlet-name>DispatcherServlet</servlet-name>
  <url-pattern>/</url-pattern>
</servlet-mapping>

在想是不是/把Tomact本身项目也拦截了,然后一顿试。。最后还是没找到原因。。闹心啊。

具体情况:
1、部署一个项目aaaa到Tomcat 7,启动后报错,报错内容为Tomcat自身所带项目(就是Tomcat主页之类的东西),但是我的aaaa项目可以正常运行。
2、删除部署的aaaa项目,运行Tomcat 7,启动不报错,运行正常。
3、部署一个项目bbbb到Tomcat 7,启动不报错,项目运行正常。
4、删除Tomcat 7自身所带项目,只部署一个aaaa项目,启动不报错,项目运行正常。
5、删除Tomcat 7自身所带项目,同时部署项目aaaa和项目bbbb到这个Tomcat上,启动不报错,运行正常。

本来怀疑aaaa项目中<servlet-mapping>配置有问题,把Tomact本身项目也拦截了

<servlet-mapping>
  <servlet-name>DispatcherServlet</servlet-name>
  <url-pattern>/</url-pattern>
</servlet-mapping>

尝试aaaa和bbbb同时运行,项目bbbb的<servlet-mapping>如下

<servlet-mapping>
  <servlet-name>actionMapping</servlet-name>
  <url-pattern>/actions/*</url-pattern>
</servlet-mapping>

同时运行后发现并没有报错,好像也不是这个原因。

折腾了快一天也没找到原因。。最后不得已把Tomcat自身所带项目删了。

以下是错误信息(Linux环境):

三月 29, 2018 4:28:04 下午 org.apache.catalina.startup.HostConfig deployDirectory
信息: Deploying web application directory /home/tomcat_aaaa/tomcat_7.0_8087_aaaa/webapps/docs
三月 29, 2018 4:28:04 下午 org.apache.catalina.core.StandardContext resourcesStart
严重: Error starting static Resources
java.lang.IllegalArgumentException: Document base /home/tomcat_aaaa/tomcat_7.0_8087_aaaa/temp/webapps/docs 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:5197)
    at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5386)
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:147)
    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.deployDirectory(HostConfig.java:1260)
    at org.apache.catalina.startup.HostConfig$DeployDirectory.run(HostConfig.java:2002)
    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:745)

三月 29, 2018 4:28:04 下午 org.apache.catalina.core.ContainerBase addChildInternal
严重: ContainerBase.addChild: start: 
org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost].StandardContext[/docs]]
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:153)
    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.deployDirectory(HostConfig.java:1260)
    at org.apache.catalina.startup.HostConfig$DeployDirectory.run(HostConfig.java:2002)
    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:745)
Caused by: org.apache.catalina.LifecycleException: Error in
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 404错误通常表示找不到请求的资源。可能原因有: 1. Tomcat服务器没有正确配置。 2. 项目部署不正确。 3. 浏览器请求的URL不正确。 4. 服务器上的资源路径不正确。 建议检查项目部署的路径,确保Tomcat服务器配置正确,并检查浏览器请求的URL是否正确。 ### 回答2: Eclipse运行Tomcat报错404往往是由于以下几个原因导致的: 1. 部署路径错误:在配置Tomcat服务器时,可能指定了错误的部署路径。可以在Eclipse中检查Tomcat服务器配置,确保指定的部署路径正确。 2. 项目正确部署:当我们在Eclipse中运行Tomcat时,需要确保正在运行Tomcat服务器中已经成功部署了我们的项目。可以在Tomcat服务器控制台中查看部署是否成功,并且确保项目正在运行。 3. 项目路径或URL错误:当我们在浏览器中访问项目时,需要确保URL地址正确。可以检查项目的访问URL是否与浏览器中输入的地址一致。 4. Maven依赖错误:如果项目使用了Maven进行依赖管理,那么可能是由于依赖引用错误导致的404错误。可以检查项目的POM文件,确保所有依赖项的配置正确。 5. 资源文件缺失:有时候404错误是由于项目所需的资源文件丢失或路径配置错误导致的。可以检查项目的资源文件是否存在,并且路径配置正确。 综上所述,当Eclipse运行Tomcat报错404时,我们可以按照以上几个方面进行排查,以找出导致错误的原因,并进行相应的修复。 ### 回答3: 当在Eclipse中运行Tomcat时,可能会遇到404错误。这意味着Tomcat无法找到所请求的资源。以下是可能导致此问题的一些原因以及解决方法: 1. 部署路径错误:首先,请确保将应用程序正确部署Tomcat的webapps目录中。确保使用正确的路径,并验证应用程序是否位于正确的位置。 2. 资源名称错误:404错误可能是由于URL中指定的资源名称与实际资源名称不匹配所导致的。请确保在URL中正确指定了资源名称,并检查应用程序中的文件和目录名称是否正确。 3. 缺少index页面:如果没有在URL中指定具体的资源名称,并且也没有默认的index页面,Tomcat将返回404错误。请确保您的应用程序中有一个index页面,并将其放在web应用程序的根目录下。 4. 缺少依赖:如果应用程序依赖于某些库或框架,并且这些依赖项正确添加到项目中,则可能会导致404错误。请确保您的应用程序的classpath中包含了所有必需的依赖项。 5. 部署过程错误:如果在部署应用程序时发生错误,可能会导致Tomcat无法正确展示应用程序。请确保在部署应用程序时没有出现任何错误,并检查日志文件以获取更多详细信息。 总结:解决Tomcat中的404错误需要检查部署路径、资源名称、默认页面、依赖项以及部署过程中是否有错误。检查这些因素可能有助于解决404错误并正常运行应用程序。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值