我正在尝试将我的Web应用程序从树脂迁移到Tomcat7。让我感到困惑的是,我不知道如何为一个虚拟主机设置一个“默认” webapp?
也就是说,我的站点只有一个应用程序:"/",位于“ /home/destiny/www”中。里面有很多PHP脚本(由apache服务),里面有一个WEB-INF目录,带有一个标准的JavaEE应用程序。 My app is not packaged in WAR , it is default expanded。
"/"
/home/destiny/www
My app is not packaged in WAR , it is default expanded
我试图找到有关如何在tomcat 7中设置虚拟主机的文档,但是所有示例都需要一个“ webapps”目录来扩展WAR,但这不是我的情况!
这是我的server.xml设置(tomcat 7.0.23):
<Host name="myhost.com" xmlBase="/home/destiny/www" unpackWARS="false" autoDeploy="true"> <Context path="/" docBase="." /> </Host> <!-- default tomcat's host --> <Host name="localhost" appBase="webapps" unpackWARs="true" autoDeploy="true"> ... </Host>
当我启动tomcat时,我看到我的webapp没有加载,只有tomcat的webapp(host- manager,manager,examples,docs,ROOT …)被加载。当我打开网站时,它会显示tomcat的默认屏幕(带有损坏的图像)。
配置不起作用…(我尝试了xmlBase,appBase,docBase …,但是全部无效)
似乎一个解决方案是ROOT在/home/destiny/www/webapps/ROOT目录中命名为’ ‘ 的Web应用程序,但我不希望使用该解决方案!我想要默认的Web应用程序在/ home / destiny / www中。并且不会安装其他任何webapp(我不需要webappsdir)。
ROOT
/home/destiny/www/webapps/ROOT
webapps
如何解决(在树脂中很容易实现)?谢谢。
要指向您自己的目录,请尝试以下操作:
转到tomcat文件夹%path_to_tomcat%/conf/Catalina/localhost 您还可以根据需要将localhost更改为主机,但是如果您唯一要做的是将应用程序放在’/’上,则localhost就可以了。
%path_to_tomcat%/conf/Catalina/localhost
ROOT.xml在先前定义的文件夹中创建一个名为的文件。在该文件中添加以下内容
ROOT.xml
<?xml version="1.0" encoding="UTF-8"?> <Context docBase="/home/destiny/www"> </Context>
另外,请查看%path_to_tomcat%/ webapps /,并删除/移动/重命名那里的ROOT文件夹(如果您不希望使用默认的tomcat页面)。
有关更多详细信息,请参见方法2 @ 此链接。