我在部署应用程序时遇到了一些问题。
环境:Ubuntu 10.04,Tomcat 7.02(从tomcat站点的存档而不是从存储库安装),手动运行和停止服务器,而不使用任何IDE。
首先,我在中创建了主机$CATALINA_HOME/conf/server.xml:
$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:
$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:8080/siloc/上看到404
$CATALINA_HOME/conf/Catalina/java.dev/
这就是自定义主机的全部内容。
我也尝试通过localhost上的管理器部署应用程序,并且它可以正常工作,我可以在localhost:8080 / siloc /上看到我的“ Hello Word”
但是,如果我更改index.jsp中的文本,则不会在前端受到影响。“重新部署”按钮对我没有帮助。
正如我提到的,管理器只是将应用程序文件复制到webapps目录,而不对配置文件进行任何更改。
我所需要的就是可以将应用程序部署到文件系统中的任何目录中(实际上是/home/krasilich/java/)。
/home/krasilich/java/
如果可以在自定义主机(如java.dev)上执行此操作,那将是很好的选择,我需要答案,为什么上下文$CATALINA_HOME/conf/Catalina/java.dev/siloc.xml对我不起作用,我应该怎么做才能使其保持一致?
谢谢。
我已经能够复制您的问题。
有2个解决方法摆弄周围的组合后,我可以建议appBase和docBase。看起来两者无法一起运行。
appBase
docBase
取出appBase从server.xml和指定的完整路径的Web应用程序docBase中$CATALINA_HOME/conf/Catalina/java.dev/siloc.xml
server.xml
我想你的价值会是/home/krasilich/java/siloc/web/siloc。
/home/krasilich/java/siloc/web/siloc
注意:最多指定父文件夹/home/krasilich/java/siloc/web/将显示父文件夹的目录列表
/home/krasilich/java/siloc/web/
在 $CATALINA_HOME/conf/Catalina/java.dev/siloc.xml
删除docBase并仅保留<Context/>
<Context/>
Tomcat siloc从中推断出webapp的名称, $CATALINA_HOME/conf/Catalina/java.dev/siloc.xml并siloc在appBase中查找命名的webapp 。
siloc
如果您还将appBasein 更改为server.xmlwebapp的父文件夹,这将允许java.dev:8080/siloc/正常工作siloc。
回应为什么manager可行,原因相同-manager.xml中没有docBase
manager
我正在尝试docBase的其他组合,但我提供的任何值都会引发
警告:主机appBase中的docBase …已指定,将被忽略
所以我的结论是删除docBase。这不是一个好主意-因为到父文件夹的完整路径然后被硬编码在server.xml中。