题
我有一些问题来部署我的应用程序。
环境:Ubuntu 10.04,Tomcat 7.02(从Tomcat网站安装,而不是从存储库中安装),服务器是运行和停止手动的,而不使用任何IDE。
对于我创建的第一个主机 $CATALINA_HOME/conf/server.xml
:
<Host name="java.dev"
appBase="/home/krasilich/java/"
autoDeploy="true" >
<Alias>www.java.dev</Alias>
</Host>
然后在 $CATALINA_HOME/conf/Catalina/java.dev/siloc.xml
:
<Context docBase="siloc/web/" />
并有错误
已指定了主机AppBase内部的Docbase/Home/Krasilich/Java/siloc/web/已指定,并将被忽略
但是,如果我将Manager.xml复制到 $CATALINA_HOME/conf/Catalina/java.dev/
我可以运行管理器应用程序。如果我通过经理部署我的应用程序 - 它说一切进展顺利,但是我仍然在Java.dev上看到404。
这就是关于自定义主机的全部。
我也尝试通过Localhost上的经理部署应用程序,并且可以在Localhost上看到我的“ Hello Word”:8080/Siloc/
但是,如果我在索引中更改文本。 “重新部署”按钮对我没有帮助。
正如我提到的那样,只有将应用程序文件复制到WebApps目录,并且在配置文件中不要进行任何更改。
我所需要的一切都可以在文件系统中的任何目录中部署应用程序(实际上是 /home/krasilich/java/
).
如果我能在java.dev之类的自定义主机上执行此操作,那就太好了,我需要答案,为什么在 $CATALINA_HOME/conf/Catalina/java.dev/siloc.xml
不为我工作,我该怎么做才能使它保持一致?
谢谢。
解决方案
我已经能够复制您的问题。
在修补途中,我可以建议有2个解决方法 appBase
和 docBase
. 。看起来两者没有一起工作。
选项1-删除AppBase
去除那个 appBase
从 server.xml
并指定Web应用程序的完整路径 docBase
在里面 $CATALINA_HOME/conf/Catalina/java.dev/siloc.xml
我认为您的价值将是 /home/krasilich/java/siloc/web/siloc
.
注意:仅指定到父文件夹 /home/krasilich/java/siloc/web/
将向您显示父文件夹的目录列表
选项2-删除Docbase
在 $CATALINA_HOME/conf/Catalina/java.dev/siloc.xml
去除那个 docBase
只保留 <Context/>
tomcat侵入WebApp名称 siloc
来自 $CATALINA_HOME/conf/Catalina/java.dev/siloc.xml
它寻找名称的WebApp siloc
在AppBase中。
这允许java.dev:8080/siloc/上班,只要您还更改 appBase
在 server.xml
到您的WebApp的父文件夹 siloc
.
回应为什么 manager
作品,同样的原因 - exter.xml中没有docbase
我正在尝试其他Docbase的组合,但是我给予的任何价值
警告:已指定主机AppBase内部的Docbase ...将被忽略
因此,我的结论是删除Docbase。这不是一个好主意 - 因为然后在server.xml中对父文件夹的完整路径进行了硬编码。