【问题标题】:Document base /home/ec2-user/myproject/web does not exist or is not a readable directory文档库 /home/ec2-user/myproject/web 不存在或不是可读目录
【发布时间】:2018-01-13 20:28:28
【问题描述】:

我正在使用 Apache Tomcat 7 将我的项目部署到 AWS。我像这样将 ROOT.xml 添加到 Catalina/localhost/

<Context
 path="/"
 docBase="/home/ec2-user/myproject/web"
 workDir="/home/ec2-user/myproject/work"
 crossContext="true">
</Context>

启动 Tomcat 给了我著名的 Tomcat 异常,但遗憾的是,我无法解决它

java.lang.IllegalArgumentException: Document base /home/ec2-user/myproject/web 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:473)
        at java.util.concurrent.FutureTask.run(FutureTask.java:262)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1152)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:622)
        at java.lang.Thread.run(Thread.java:748)

我尝试过的事情:

  • sudo chown -R tomcat:tomcat web &amp;&amp; sudo chmod 775 -R web(不 工作)
  • sudo ln -s web /etc/tomcat/web(不起作用)
  • sudo cp -rf web /etc/tomcat/web(实际上,如果我移动 web 文件夹在 /home/ec2-user 之外的任何位置,它开始工作)

如何使用ec2-user 下的web 文件夹完成这项工作?

【问题讨论】:

标签: java tomcat amazon-ec2


【解决方案1】:

问题解决了。从

编辑 /etc/tomcat7/tomcat7.conf

TOMCAT_USER="tomcat"

TOMCAT_USER="root"

不是最好的方法,但我现在可以继续我的工作

【讨论】:

  • 不要这样做。运行面向 Web 的应用程序添加 root 是一个特别糟糕的主意。想象一下任何安全问题的影响。修复根本问题。 (此处的 root 不是用户,尽管您可能会争辩说 out 是……)
猜你喜欢
  • 1970-01-01
  • 2012-06-11
  • 1970-01-01
  • 2014-10-24
  • 1970-01-01
  • 2020-04-16
  • 1970-01-01
  • 2016-03-12
  • 2013-10-02
相关资源
最近更新 更多