【问题标题】:Eclipse tomcat error: Document base does not exist or is not a readable directoryEclipse tomcat 错误:文档库不存在或不是可读目录
【发布时间】:2011-12-13 16:19:02
【问题描述】:
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 页面错误。也许问题是我要写的文件夹不存在。诀窍在哪里?

【问题讨论】:

标签: eclipse tomcat7 illegalargumentexception


【解决方案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>

【讨论】:

    【解决方案2】:

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

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

    【讨论】:

    • 不需要删除服务器,只需删除模块,[保存],然后重新添加它们[保存]
    • @hello_harry 我相信这也行得通 - 我在这方面有过很多糟糕的经历,我更愿意重新开始,以确保我开始干净。
    • 如果您在 Mac 上遇到此问题,创建一个新服务器会起作用,但最好使用从 zip 文件安装的 tomcat 安装来创建它,而不是从 brew。下载一个tomcat zip,解压,新建服务器时指定解压后的文件为“tomcat安装目录”
    【解决方案3】:

    这可能是因为“Tomcat\conf\Catalina”文件夹。 请删除此文件夹。

    谢谢 卡马尔

    【讨论】:

    • 可能可以为您的答案添加更多解释。
    • 这是个坏主意,因为这是一个包含上下文配置文件的目录。
    • 不使用的应用可以安全删除(对于我来说,manager.xml 和 host-manager.xml)。
    【解决方案4】:

    我在使用 Tomcat 7 和 Eclipse Mars 时遇到了同样的问题。
    我解决了如下:

    • 停止 Tomcat
    • 打开server.xml

      Ctrl + Shift + R > 输入“server.xml” > 打开

    • 搜索“&lt;Context docBase

      Ctrl + F > 输入“&lt;Context” > 查找

    • 从这里删除所有&lt;Context .../&gt; 标签:

      <?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>
      
      • 可能在必须删除的最后一行的末尾是&lt;/Host&gt;(不要删除&lt;/Host&gt;!)
    • 转到服务器选项卡 > 右键单击​​项目 > 删除 > 确定

    • 右键项目>运行方式>在服务器上运行>完成

      现在应该可以了!
      如果您检查 server.xml 文件,您会看到生成了一个新的正确的“&lt;Context ... /&gt;”行。

    【讨论】:

    • 好吧,这对我有用,但 WTF 是这样吗?为什么我们需要这样做来启动简单的应用程序?
    【解决方案5】:

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

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

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

    【讨论】:

    • +1 为我指明了正确的方向:将构建过程更改为 gradle 后,“部署程序集”下缺少条目,因此未创建 wtpwebapps 下的目录。
    • 1 天多来一直在敲打我的笔记本电脑,谢谢您,好心的先生,提供这个答案。
    【解决方案6】:

    如果使用 Eclipse STS

    1. 打开服务器视图

    2. 选择您要发布到的服务器

    3. 右键->清理

    我遇到过几次这个问题,这似乎总能解决它。我想其他解决方案也可以,但对我来说似乎更复杂。

    【讨论】:

      【解决方案7】:

      我也有同样的错误,重复运行这个maven命令即可解决问题。

      mvn eclipse:clean eclipse:eclipse -Dwtpversion=2.0
      

      eclipse 无法识别这是一个 Web 项目,因此永远不要部署应用程序。

      【讨论】:

      • 非常感谢!我的项目有正确的项目外观“动态 Web 模块”,但这当然还不够......
      • 这解决了使用 maven 的适当配置文件的问题。
      【解决方案8】:

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

      【讨论】:

        【解决方案9】:

        试试,右键tomcat --> 添加/删除,然后在打开的窗口中,删除Configured端的所有项目..

        然后重启tomcat。

        【讨论】:

          【解决方案10】:

          看看你得到的异常,这看起来像是发布你的 WEB 应用程序的问题(例如,Eclipse WTP 可能会搞砸一些事情)。我想到的第一件事:

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

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

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

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

          【讨论】:

          • 不行!该网络应用程序未在 /wtpwebapps 文件夹中发布。此文件夹拥有所有权限
          • 如果可能删除“旧”tomcat 服务器,删除workspace\.metadata\.plugins\org.eclipse.wst.server.core\publish 文件夹,然后再次尝试添加tomcat。检查网络应用程序现在是否已发布。关于您的 Eclipse... 您使用的是 Eclipse Indigo 还是旧版本的 Eclipse(插件更新?)?您也可以尝试使用 --clean 启动 eclipse。
          • 我使用的是 Eclipse 3.7。到目前为止我已经尝试过,但问题没有解决。
          【解决方案11】:

          发生在我身上几次。

          Windows > 显示视图 > 服务器>

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

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

          【讨论】:

            【解决方案12】:

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

            【讨论】:

              【解决方案13】:

              转到 Tomcat 管理器 选择网络应用 -> 取消部署

              【讨论】:

                【解决方案14】:

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

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

                我尝试了几种方法,例如 clean,add/remove 然后我开始搜索 SO。

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

                【讨论】:

                  【解决方案15】:

                  作为一个小问题,您尝试启动的项目可能会被关闭(如果您有很多项目进入工作区,这可能会丢失!)。在这种情况下,只需执行right click -&gt; Open Project

                  【讨论】:

                    【解决方案16】:

                    我今天遇到了这个问题,然后通过编辑%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在“Host”的元素中生成了“Context”元素,但是我根据IDE控制台中显示的错误信息进行了更改。

                    【讨论】:

                      【解决方案17】:

                      我多次收到此错误。我得到它是因为我的项目在运行“mvn eclipse:eclipse”行后没有正确构建。确保您的项目正在正确构建,然后从服务器中添加和删除项目。

                      【讨论】:

                        【解决方案18】:

                        如果你执行 maven 来构建一个 java 项目,就会发生这种情况

                        mvn eclipse:eclipse 
                        

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

                        mvn eclipse eclipse -Dwtpversion=2.0
                        

                        【讨论】:

                          【解决方案19】:

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

                          【讨论】:

                            【解决方案20】:

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

                            【讨论】:

                              猜你喜欢
                              • 2012-06-11
                              • 1970-01-01
                              • 1970-01-01
                              • 2014-10-24
                              • 2013-10-02
                              • 2010-12-15
                              • 2020-04-16
                              • 1970-01-01
                              • 1970-01-01
                              相关资源
                              最近更新 更多