我想在 tomcat 服务器中部署 myapp。我知道一种方法是从 webapps 中删除 Root 文件夹并将我的 app.war 重命名为 ROOT.WAR。但我不想这样做。我想像当用户以 www.xxx.com 访问我的应用程序时那样部署,它应该像 www.xxx.com/login.html 一样转到我的应用程序。 请帮忙
最佳答案
您可以从(几乎)任何您想要的上下文名称的任何地方部署任何 WAR 文件(或展开的 WAR 目录),只要它不与任何自动部署的应用程序冲突即可。方法如下:
从
webapps/
中删除所有冲突的应用程序(在这种情况下,实际上,它只是ROOT
)将您自己的应用程序移动到
webapps/
以外的地方复制
META-INF/context.xml
从您的应用程序中下载文件并将其放入 Tomcat 的conf/[engine]/[host]/[contextpath].xml
中– 例如conf/Catalina/localhost/ROOT.xml
编辑
conf/[engine]/[host]/[contextpath].xml
并将此属性添加到<Context>
元素:docBase="/path/to/your/WAR.war"
现在,Tomcat 将部署 /path/to/your/WAR.war
在上下文路径上 /
(因为部署描述符的文件名是 ROOT
),您不必修改 conf/server.xml
.
谁关心修改conf/server.xml
?好吧,该文件在容器启动期间仅被读取一次,因此如果您想要进行更改、取消部署、重新部署等,您必须重新启动整个容器以获取这些更改。最好使用 Tomcat 的自动部署工具,如您所见,它非常灵活。
所有这些都在 Tomcat's documentation on defining contexts 中列出顺便说一句,第一句话清楚地表明在 server.xml
中定义上下文是一种不好的做法。
关于tomcat - 如何在tomcat服务器中部署应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41263245/