如何在tomcat服务器中部署应用程序

时间:2016-12-21 12:52:16

标签: tomcat tomcat8

我想在tomcat服务器中部署myapp。我知道一种方法是从webapps中删除Root文件夹,并将我的app.war重命名为ROOT.WAR。但我不想这样做。我希望像用户访问我的应用程序一样部署为www.xxx.com,它应该转到我的应用程序,如www.xxx.com/login.html。 请帮忙

3 个答案:

答案 0 :(得分:8)

您可以从任何具有任何上下文名称的任何位置部署任何WAR文件(或爆炸的WAR目录),只要它不与任何自动部署的应用程序冲突即可。方法如下:

  1. webapps/移除所有有冲突的应用程序(在这种情况下,真的,只是ROOT
  2. 将您自己的应用程序移到webapps/
  3. 以外的其他位置
  4. 从您的应用程序中复制META-INF/context.xml文件并将其放入Tomcat的conf/[engine]/[host]/[contextpath].xml - 例如conf/Catalina/localhost/ROOT.xml
  5. 修改conf/[engine]/[host]/[contextpath].xml并将此属性添加到<Context>元素:

    docBase="/path/to/your/WAR.war"

  6. 现在,Tomcat将在上下文路径/path/to/your/WAR.war上部署/(因为部署描述符的文件名为ROOT),您不必修改conf/server.xml。< / p>

    谁在乎修改conf/server.xml?好吧,该文件只在容器启动期间读取一次,因此如果要进行更改,取消部署,重新部署等,则必须重新启动整个容器以获取这些更改。使用Tomcat的自动部署工具要好得多,正如您所看到的那样,它非常灵活。

    所有这些都在Tomcat's documentation on defining contexts中列出,顺便提一下,第一句话清楚地表明在server.xml中定义上下文是一种不好的做法。

答案 1 :(得分:0)

答案 2 :(得分:0)

您可以通过多种方式设置根应用程序。 (见https://stackoverflow.com/a/5328636/6371459

  1. 删除ROOT目录并将您的战争部署为ROOT.war

  2. webapps部署战争并在conf/server.xml中配置上下文根以使用您的war文件(not recommended,因为需要重新启动)

  3. 创建特定的上下文文件$CATALINA_BASE/conf/[enginename]/[hostname]/ROOT.xml并设置docBase=your_war_name,就像之前的2)一样(参见@ChristopherShultz回答)

  4. 由于您已经放弃了选项1,并且不建议使用选项2,我建议使用上下文文件