Eclipse tomcat错误:文档库不存在或不是可读目录

时间:2011-12-13 16:19:03

标签: eclipse tomcat7 illegalargumentexception

13-dic-2011 17.00.36 org.apache.catalina.core.AprLifecycleListener init
INFO: The APR based Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path: /usr/lib/jvm/java-6-openjdk/jre/lib/amd64/server:/usr/lib/jvm/java-6-openjdk/jre/lib/amd64:/usr/lib/jvm/java-6-openjdk/jre/../lib/amd64:/usr/java/packages/lib/amd64:/usr/lib/jni:/lib:/usr/lib
13-dic-2011 17.00.36 org.apache.tomcat.util.digester.SetPropertiesRule begin
AVVERTENZA: [SetPropertiesRule]{Server/Service/Engine/Host/Context} Setting property 'source' to 'org.eclipse.jst.jee.server:Preventivi' did not find a matching property.
13-dic-2011 17.00.36 org.apache.coyote.AbstractProtocol init
INFO: Initializing ProtocolHandler ["http-bio-8080"]
13-dic-2011 17.00.36 org.apache.coyote.AbstractProtocol init
INFO: Initializing ProtocolHandler ["http-bio-8443"]
13-dic-2011 17.00.37 org.apache.coyote.AbstractProtocol init
INFO: Initializing ProtocolHandler ["ajp-bio-8009"]
13-dic-2011 17.00.37 org.apache.catalina.startup.Catalina load
INFO: Initialization processed in 983 ms
13-dic-2011 17.00.37 org.apache.catalina.core.StandardService startInternal
INFO: Starting service Catalina
13-dic-2011 17.00.37 org.apache.catalina.core.StandardEngine startInternal
INFO: Starting Servlet Engine: Apache Tomcat/7.0.23
13-dic-2011 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)
13-dic-2011 17.00.37 org.apache.catalina.core.StandardContext startInternal
GRAVE: Error in resourceStart()
13-dic-2011 17.00.37 org.apache.catalina.core.StandardContext startInternal
GRAVE: Error getConfigured
13-dic-2011 17.00.37 org.apache.catalina.core.StandardContext startInternal
GRAVE: Context [/Preventivi] startup failed due to previous errors
13-dic-2011 17.00.37 org.apache.coyote.AbstractProtocol start
INFO: Starting ProtocolHandler ["http-bio-8080"]
13-dic-2011 17.00.37 org.apache.coyote.AbstractProtocol start
INFO: Starting ProtocolHandler ["http-bio-8443"]
13-dic-2011 17.00.37 org.apache.coyote.AbstractProtocol start
INFO: Starting ProtocolHandler ["ajp-bio-8009"]
13-dic-2011 17.00.37 org.apache.catalina.startup.Catalina start
INFO: Server startup in 319 ms

我在Eclipse中运行我的webapp项目,但今天我在控制台中收到了这条消息。 Tomcat返回404页面错误。也许问题是我写的文件夹不存在。诀窍在哪里?

20 个答案:

答案 0 :(得分:45)

最简单的解决方案(以及对我有用的)是从Eclipse中的“Servers”视图中删除我的tomcat服务器,然后创建一个新服务器并向其添加所有适当的模块。

有时候tomcat会感到困惑,最简单/最耗时的解决方法就是重新开始。

答案 1 :(得分:20)

我有同样的错误,只需重复运行此maven命令并解决问题。

mvn eclipse:clean eclipse:eclipse -Dwtpversion=2.0

eclipse没有意识到这是一个Web项目,所以永远不要部署应用程序。

答案 2 :(得分:9)

我使用Tomcat 7& Eclipse火星。
我解决了它如下:

  • 停止Tomcat
  • 打开 server.xml

    Ctrl + Shift + R > type" server.xml" >打开

  • 搜索&#34; <Context docBase&#34;

    Ctrl + F &gt;输入&#34; <Context&#34; &GT;查找

  • 从此处删除所有<Context .../>代码:

    <?xml version="1.0" encoding="UTF-8"?>
    ...
    <Server port="8005" shutdown="SHUTDOWN">
        ...
        <Service name="Catalina">
            ...
            <Engine defaultHost="localhost" name="Catalina">
                ...
                <Host appBase="webapps" autoDeploy="true" name="localhost" unpackWARs="true">
                    ...
                    <!-- Remove the following lines! -->
                    <Context docBase="App1" path="/App1" reloadable="true" source="org.eclipse.jst.j2ee.server:App1" />
                    <Context docBase="App2" path="/App2" reloadable="true" source="org.eclipse.jst.j2ee.server:App2" />
                </Host>
            </Engine>
        </Service>
    </Server>
    
    • 可能在最后一行的最后一行是</Host>(不要删除</Host>!)
  • 转到服务器标签&gt;右键单击项目&gt;删除&gt;行

    remove

  • 右键单击项目&gt;运行方式&gt;在服务器上运行&gt;完成

    现在它应该工作!
    如果您检查server.xml文件,您将看到一个新的正确&#34; <Context ... />&#34;线已生成。

答案 3 :(得分:6)

这可能会迟到,但为了将来可能遇到同样问题的人的利益,我将分享我的经历。

我删除了{I}刚刚创建的WebContent文件夹,代替Dynamic Web Project文件夹(我公司的标准文件夹)后出现此问题。我发现,在webapp中,Project Properties > Deployment Assembly文件夹仍然用作Web应用程序WebContent的根目录。因此,Eclipse不会将项目复制到(Deploy Path : "/"),因为.metadata/.plugins/org.eclipse.wst.server.core/tmp0/wtpwebapps中指定的根目录不再存在。

我通过编辑该条目来修复它,然后用我正在使用的文件夹代替默认的Deployment AssemblyWebContent文件夹)来修正它

答案 4 :(得分:5)

如果使用Eclipse STS

  1. 打开服务器视图

  2. 选择您尝试发布到

  3. 的服务器
  4. 右键单击 - &gt;清洁

  5. 我有这个问题出现了几次,这似乎总是解决它。我想其他解决方案也有效,但对我来说似乎更复杂。

    enter image description here

答案 5 :(得分:4)

这可能是因为&#34; Tomcat \ conf \ Catalina &#34;夹。 请删除此文件夹。

由于 卡迈勒

答案 6 :(得分:3)

查看您获得的异常,这看起来像是发布您的WEB-App的问题(例如,Eclipse WTP可能会弄乱一些东西)。我想到的第一件事就是:

检查您的Tomcat服务器设置:转到服务器 - 双击您的服务器。获取“服务器位置 - 服务器路径”并检查它是否存在并检查用户/组读/写权限。 例如。 ls -lh somepath / .medadata / .plugins / .org.eclipse.wst.server.core / tmp0 您必须是该文件夹的所有者或至少在同一组中。

清理eclipse工作区。 (项目 - 全部清理)

清理/重新发布您的wep-app(右键单击服务器,清理,发布)。

检查应用程序是否已发布,/home/claudio/workspace/.metadata/.plugins/org.eclipse.wst.server.core/tmp0/wtpwebapps/中应该有一个名为Preventini的文件夹 同时再次检查权限(见上文)。

答案 7 :(得分:2)

发生在我身上几次。

Windows&gt;显示视图&gt;服务器和GT;

服务器列表将显示在底部 右键单击它并删除。

现在,在运行项目时,手动从现有服务器列表中选择服务器并运行。

答案 8 :(得分:1)

我必须从模块选项卡下的tomcat配置视图中删除一个有问题的项目/模块。

答案 9 :(得分:1)

我通过添加从WebContent / WEB-INF / lib文件夹中删除并再次添加jar文件来解决此错误。我在项目的属性中做了同样的事情,即(右键单击项目 - &gt;构建路径 - >配置构建路径),选择Add External Jar选项。

答案 10 :(得分:1)

当我导入项目并使用Tomcat运行它时,我遇到了这个问题。当我打开.project文件并添加一些代码时,我修复了它:

<nature>org.eclipse.wst.common.project.facet.core.nature</nature>
<nature>org.eclipse.wst.common.modulecore.ModuleCoreNature</nature>
<nature>org.eclipse.jem.workbench.JavaEMFNature</nature>

答案 11 :(得分:0)

您可以查看tomcat \ conf \ Catalina \ localhost,如果您可以看到其名称与您的错误消息匹配的xml文件。您只需删除xml文件并重新启动您的tomcat。

答案 12 :(得分:0)

如果你执行maven来构建一个java项目

,就会发生这种情况
mvn eclipse:eclipse 

而不是执行maven来构建web java项目:

mvn eclipse eclipse -Dwtpversion=2.0

答案 13 :(得分:0)

我有几次这个错误。我得到它是因为我的项目在运行&#34; mvn eclipse之后没有正确构建:eclipse&#34;线。确保正确构建项目,然后从服务器添加和删除项目。

答案 14 :(得分:0)

我今天遇到了这个问题,然后通过编辑%tomcat_home%\ conf目录中的server.xml来解决它,如下所示:

<Context docBase="E:\apache-tomcat-7.0.52\webapps\ROOT" path="/ROOT" reloadable="true" source="org.eclipse.jst.j2ee.server:pc-ui"/>

我不知道MyEclipse是否已经制作了&#34; Context&#34; &#34; Host&#34;的元素中的元素,但我根据IDE控制台中显示的错误信息进行更改。

答案 15 :(得分:0)

作为一个微不足道的问题,您尝试启动的项目可以关闭(如果您有很多项目进入工作区,这可能是错误的!)。在这种情况下,只需right click -> Open Project

enter image description here

答案 16 :(得分:0)

今天我正在使用其他一些项目并在启动服务器(tomcat7)时遇到一些错误,所以首先我cleaned服务器并尝试但没有运气,然后我删除了服务器并创建了新服务器。

我工作的项目开始工作正常,但是另一个项目开始给我相同的异常,我再次删除了服务器并尝试了同样的情况,即使我无法点击tomcat登陆页面即{{ 1}}。我真的不知道如何以及为什么会发生这种情况。

我尝试过localhost:8888/clean之类的几件事,然后我就开始搜索了。

经过一番研究后我想再给一次机会然后我再次启动服务器这次我的两个项目都开始工作正常但仍然在tomcat页面上获得404

答案 17 :(得分:0)

转到Tomcat Manager 选择网络应用 - &gt;取消部署

答案 18 :(得分:-1)

在采用任何其他解决方案之前,请确保项目打开

答案 19 :(得分:-1)

尝试,右键单击tomcat - &gt; 添加/删除,然后在打开的窗口中删除已配置端的所有项目..

然后重启tomcat。