一尘不染

在Tomcat的自定义主机上部署应用程序

tomcat

我在部署应用程序时遇到了一些问题。

环境: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:8080/siloc/上看到404

这就是自定义主机的全部内容。

我也尝试通过localhost上的管理器部署应用程序,并且它可以正常工作,我可以在localhost:8080 / siloc /上看到我的“ Hello
Word”

但是,如果我更改index.jsp中的文本,则不会在前端受到影响。“重新部署”按钮对我没有帮助。

正如我提到的,管理器只是将应用程序文件复制到webapps目录,而不对配置文件进行任何更改。

我所需要的就是可以将应用程序部署到文件系统中的任何目录中(实际上是/home/krasilich/java/)。

如果可以在自定义主机(如java.dev)上执行此操作,那将是很好的选择,我需要答案,为什么上下文$CATALINA_HOME/conf/Catalina/java.dev/siloc.xml对我不起作用,我应该怎么做才能使其保持一致?

谢谢。


阅读 344

收藏
2020-06-16

共1个答案

一尘不染

我已经能够复制您的问题。

有2个解决方法摆弄周围的组合后,我可以建议appBasedocBase。看起来两者无法一起运行。

选项1-删除appBase

取出appBaseserver.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 siloc从中推断出webapp的名称,
$CATALINA_HOME/conf/Catalina/java.dev/siloc.xmlsiloc在appBase中查找命名的webapp

如果您还将appBasein
更改为server.xmlwebapp的父文件夹,这将允许java.dev:8080/siloc/正常工作siloc

回应为什么manager可行,原因相同-manager.xml中没有docBase

我正在尝试docBase的其他组合,但我提供的任何值都会引发

警告:主机appBase中的docBase …已指定,将被忽略

所以我的结论是删除docBase。这不是一个好主意-因为到父文件夹的完整路径然后被硬编码在server.xml中。

2020-06-16