我有一些问题来部署我的应用程序。

环境: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个解决方法 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侵入WebApp名称 siloc 来自 $CATALINA_HOME/conf/Catalina/java.dev/siloc.xml 它寻找名称的WebApp siloc 在AppBase中。

这允许java.dev:8080/siloc/上班,只要您还更改 appBaseserver.xml 到您的WebApp的父文件夹 siloc.

回应为什么 manager 作品,同样的原因 - exter.xml中没有docbase

我正在尝试其他Docbase的组合,但是我给予的任何价值

警告:已指定主机AppBase内部的Docbase ...将被忽略

因此,我的结论是删除Docbase。这不是一个好主意 - 因为然后在server.xml中对父文件夹的完整路径进行了硬编码。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top