【问题标题】:tomcat context setting and URL issuetomcat 上下文设置和 URL 问题
【发布时间】:2015-08-27 10:58:40
【问题描述】:

我有一个在 tomcat 8 中运行的网络应用程序。我想更改访问 URL。

我以tomcat默认的manager应用为例。

使用默认配置,manager 应用程序位于 webapps 文件夹中。 manager 表示应用名称。但是如果我不想暴露应用名,又想让应用被localhost:8080/tomcat-manager访问,该怎么办呢?

根据官方文档,我修改了manager/META-INF文件夹下的context.xml。我的context.xml如下:

<Context path="/tomcat-manager" docBase="manager"> </Context>

然后我想我可以通过localhost:8080/tomcat-manager 访问manager 应用程序,但是它不起作用。

所以我想知道我该怎么做?

【问题讨论】:

  • 您运行您的应用程序部署战争或在 IDE 中“启动服务器”?您应该将&lt;Context path="..."&gt; 放入server.xml,而不是context.xml
  • @SashaSalauyou 在官方文档中,不建议将Context放在server.xml中,因为不重启tomcat就无法reload。

标签: java url tomcat tomcat8


【解决方案1】:

将名为 manager 的文件夹重命名为 tomcat-manager 即可。

阅读the documentation了解更多信息。

更新

您不应该在META-INF/context.xml 文件中指定路径:路径将根据 WAR 文件的名称确定。此外,永远不要在 META-INF/context.xml 中指定 docBase,因为 docBase 是已知的(META-INF/context.xml 已经相对于某些东西:docBase)。

也就是说,如果您使用外部 context.xml 文件(例如,在 $CATALINA_BASE/conf/[engine]/[host]/[appname].xml 中,那么您必须指定一个指向您的 WAR 文件(或分解的 WAR 目录)的 docBase。您将仍然永远不要在该文件中使用path

【讨论】:

  • 我知道这样可以,但是context.xmlpathdocBase中的配置有什么用。我可以在不更改文件夹名称的情况下完成此操作吗?
  • 我明白了,两个不同位置的context.xml 不符合相同的规则。
猜你喜欢
  • 2016-04-03
  • 2020-09-19
  • 2013-05-19
  • 2023-03-31
  • 2012-03-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多