tomcat - 如何在 Tomcat 7.0 中设置 Web 应用程序的上下文路径

标签 tomcat tomcat7 root context.xml

我知道我可以将我的网络应用程序(或其 WAR 文件)重命名为 ROOT 但这是一种糟糕的方式,恕我直言。现在我查看了 tomcat 文档,上面写着

It is NOT recommended to place elements directly in the server.xml file

所以我尝试使用它建议的另一种方法。

Individual Context elements may be explicitly defined: In an individual file at /META-INF/context.xml inside the application files.

所以我创建了一个 /META-INF/context.xml使用以下代码,

<?xml version="1.0" encoding="UTF-8"?>
<Context antiJARLocking="true" path="/"/>

但是在部署之后,当我重新启动服务器时,它仍然无法加载“/”处的上下文,它仍然加载了 "/<WEB_APP_NAME>"

任何有帮助的指示。

最佳答案

你可以做的是:

添加一个名为 ROOT.xml 的文件在<catalina_home>/conf/Catalina/localhost/

此 ROOT.xml 将覆盖该引擎和主机(Catalina 和本地主机)的 tomcat 安装根上下文的默认设置。

在ROOT.xml文件中输入以下内容;

<Context 
  docBase="<yourApp>" 
  path="" 
  reloadable="true" 
/>

在这里,<yourApp>是您的应用程序的名称..:)

好了,您的应用程序现在是默认应用程序并将显示在 http://localhost:8080

但是,有一个副作用;您的应用程序将被加载两次。一次为localhost:8080一次是 localhost:8080/yourApp .要解决此问题,您可以将您的应用程序放在外面 <catalina_home>/webapps并在 ROOT.xml 的 docBase 标记中使用相对或绝对路径。像这样的东西;

<Context 
  docBase="/opt/mywebapps/<yourApp>" 
  path="" 
  reloadable="true" 
/>

然后就一切OK了!

关于tomcat - 如何在 Tomcat 7.0 中设置 Web 应用程序的上下文路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39317707/

相关文章:

java - tomcat 8 security 基于表单的身份验证自动登录

ssl - Spring 3.1 的混合模式 X509 身份验证

iphone - 如何将我的 .app 文件从 xcode 的 builds 文件夹复制/运行到我的 iphone 上的/Applications 文件夹? (越狱)

mysql - 我可以在没有 root 访问权限的情况下更改 OpenShift 中的 my.inf 吗?

java - Apache Tomcat 在监听器上启动时出错

java - Tomcat + Servlet + Solr 国际字符不正确

java - 已删除的文件出错

java - 无法编译 JSP 类(eBay 交易 API 示例 - 登录重定向)

jakarta-ee - 如何将 Dojo Toolkit 放在 WAR 文件之外以缩短构建时间?

mysql - 我的 MySQL ROOT 用户没有权限,是什么原因造成的?我该怎么办?