【问题标题】:IllegalArgumentException: Document base \.metadata\.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps does not exist or is not a readable directoryIllegalArgumentException:文档库 \.metadata\.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps 不存在或不是可读目录
【发布时间】:2014-10-24 16:29:10
【问题描述】:

当我尝试在本地 Tomcat 服务器上运行我的项目时,出现错误:

Server Tomcat v7.0 Server at localhost failed to start.

我按照this Stackoverflow answer 中的建议删除了文件夹tmp0。但我仍然遇到同样的错误。

我已经复制了下面的堆栈跟踪。

SEVERE: Error starting static Resources
java.lang.IllegalArgumentException: Document base C:\Users\Imray\Projects\InstrurentalApp\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps\instrurentalapp 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:5089)
    at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5269)
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
    at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1559)
    at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1549)
    at java.util.concurrent.FutureTask$Sync.innerRun(Unknown Source)
    at java.util.concurrent.FutureTask.run(Unknown Source)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
    at java.lang.Thread.run(Unknown Source)

【问题讨论】:

    标签: java eclipse tomcat localhost


    【解决方案1】:

    你注意到这条线了吗:

    java.lang.IllegalArgumentException: Document base C:\Users\Imray\Projects\
          InstrurentalApp\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\
          wtpwebapps\instrurentalapp does not exist or is not a readable directory
    

    消息清楚地表明该目录不存在,或者 Tomcat 服务器没有对其的读取权限。如果你把它删除了……这或许可以解释为什么它不存在!

    实际上,路径名对我来说非常可疑。它看起来 像您的开发沙箱中的某个路径,并且已部署的 web 应用程序(在 Tomcat 中运行)不应该依赖于这些东西。 (您的生产服务器上不应该有那种东西!)这可能是您的问题的根本原因;即您忽略了将资源放入 WAR 文件并相应地更新配置文件。

    【讨论】:

      【解决方案2】:

      试试这三种方法

      1) 尝试删除在

      中找到的 .snap 文件

      yourprojectworkspace.metadata.plugins\org.eclipse.core.resources

      2) 最常见的故障是另一个 Web 服务器(或与此相关的任何进程)声称使用端口 8080。这是 Tomcat 在启动时尝试绑定的默认 HTTP 端口。要更改此设置,请打开文件:

         $CATALINA_HOME/conf/server.xml
      

      然后搜索“8080”。将其更改为未使用且大于 1024 的端口,因为小于或等于 1024 的端口需要超级用户访问权限才能在 UNIX 下绑定。 (例 8181)

      重新启动 Tomcat,您就可以开始工作了。确保替换用于访问 Tomcat 的 URL 中的“8080”。例如,如果您将端口更改为 8181,您将在浏览器中请求 URL http://localhost:8181/

      3) 打开 bin 文件夹,该文件夹包含位于 tomcat 目录中的 shutdown.bat 文件。运行它,应该可以解决端口问题。

      【讨论】:

      • 谢谢...如果我再次遇到问题我会尝试
      【解决方案3】:

      只需更改端口号,这样就可以解决这个问题..

      采用不同的端口 1.Tomcat管理端口:8079 2. Http端口:99 3. Ajp端口:8078

      【讨论】:

        【解决方案4】:

        检查您的 web.xml 文件

        并纠正 url-pattern 和 servlet-class 或任何语法错误,然后运行项目。

        【讨论】:

          【解决方案5】:
          1. 转到显示在服务器控制台中的服务器链接(与 servlet 同步)。
          2. 展开链接。
          3. 取消同步已同步的 servlet。
          4. 右键单击服务器链接。
          5. 点击发布。
          6. 然后重新启动服务器。

          希望它会奏效。 :D

          【讨论】:

            【解决方案6】:

            转到 Eclipse 中的服务器选项卡,您在其中配置了服务器并右键单击服务器并选择清理。之后重新启动服务器。它有效

            【讨论】:

              猜你喜欢
              • 2016-02-24
              • 1970-01-01
              • 1970-01-01
              • 2015-10-17
              • 2012-06-11
              • 1970-01-01
              • 2015-12-04
              • 1970-01-01
              • 2020-04-16
              相关资源
              最近更新 更多