部署我的应用程序时遇到了一些问题 .
环境: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上看到我的“Hello Word”:8080 / siloc /
但是,如果我更改index.jsp中的文本,它将不会影响前端 . “重新部署”按钮对我没用 .
正如我提到的经理只是将应用程序文件复制到webapps目录,并且不要对配置文件进行任何更改 .
我只需要在文件系统的任何目录中部署应用程序(实际上它将是 /home/krasilich/java/
) .
如果我能在像java.dev这样的自定义主机上执行此操作会很棒我需要答案,为什么 $CATALINA_HOME/conf/Catalina/java.dev/siloc.xml
中的上下文对我不起作用,我该怎么做才能使它保持一致?
谢谢 .
1 回答
我能够复制你的问题 .
在修补了
appBase
和docBase
的组合后,我可以建议2种解决方法 . 看起来这两个不能一起操作 .选项1 - 删除appBase
从
server.xml
中删除appBase
并在$CATALINA_HOME/conf/Catalina/java.dev/siloc.xml
中的docBase
中指定Web应用程序的完整路径我假设你的 Value 是
/home/krasilich/java/siloc/web/siloc
.注意:仅指定父文件夹
/home/krasilich/java/siloc/web/
将显示父文件夹的目录列表选项2 - 删除docBase
在
$CATALINA_HOME/conf/Catalina/java.dev/siloc.xml
删除
docBase
并仅保留<Context/>
Tomcat从
$CATALINA_HOME/conf/Catalina/java.dev/siloc.xml
推断出webapp名称siloc
,它在appBase中查找名为siloc
的webapp .这允许java.dev:8080/siloc/工作,前提是您还将
server.xml
中的appBase
更改为webapp的父文件夹siloc
.为了回应
manager
工作的原因,同样的原因 - manager.xml中没有docBase我正在尝试docBase的其他组合,但我给出的任何值都会抛出
所以我的结论是删除docBase . 这不是一个好主意 - 因为父文件夹的完整路径然后在server.xml中进行了硬编码 .