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

标签 tomcat tomcat8

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

最佳答案

您可以从(几乎)任何您想要的上下文名称的任何地方部署任何 WAR 文件(或展开的 WAR 目录),只要它不与任何自动部署的应用程序冲突即可。方法如下:

  1. webapps/ 中删除所有冲突的应用程序(在这种情况下,实际上,它只是 ROOT )

  2. 将您自己的应用程序移动到 webapps/ 以外的地方

  3. 复制 META-INF/context.xml从您的应用程序中下载文件并将其放入 Tomcat 的 conf/[engine]/[host]/[contextpath].xml 中– 例如 conf/Catalina/localhost/ROOT.xml

  4. 编辑 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/

相关文章:

java - Liferay Tomcat 与另一个 CMS 系统运行在同一个 Linux 机器上

java - 在 Apache Tomcat 中发送关于 MIME 类型响应的特定 header

GWTP 防止 XSRF 攻击

resources - 符号链接(symbolic link) tomcat 8 目录资源

java - tomcat上下文设置和URL问题

java - Tomcat 8 jpda 端口

jsp - jetty 中的 Jasper 在 getOutputStream 上抛出 IllegalStateException 而不是在 Tomcat 上

java - 使用 LDAP 的 Tomcat 身份验证,只有用户名,没有密码

java - 如何修复tomcat org.apache.tomcat.util.http.parser.HttpParser.<clinit> Character [[] is not allowed and will continue to reject

java - 公开 Tomcat 日志文件