【发布时间】: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 && 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 文件夹完成这项工作?
【问题讨论】:
-
可能
/home/ec2-user属于名为ec2-user的用户。用户tomcat对ec2-user自己的目录没有权限。您可以像这样使用 ACL unix.stackexchange.com/a/91522/92059
标签: java tomcat amazon-ec2