Pivotal TC 默认网站覆盖

Posted

技术标签:

【中文标题】Pivotal TC 默认网站覆盖【英文标题】:Pivotal TC default website override 【发布时间】:2018-07-30 01:11:27 【问题描述】:

我有 Spring Tool Suite (3.9.2.RELEASE),它默认附带 Pivotal TC Web 服务器,它是 Apache Tomcat 的一个变体。据我了解,为了为 Tomcat 设置“默认网站”,您需要修改指向您的应用程序的“上下文”。最佳实践可能会说在不同的文件中定义它,但我知道它仍然可以在“server.xml”中完成。

我在 STS 中有一个应用程序(“myApp”)。它通常通过http://localhost:8080/myApp 访问。我想改为通过http://localhost:8080 访问它。

以下是来自 Pivotal TC 'server.xml' 的片段

<Context docBase="myApp" path="/myApp" ... />

我已对此进行了如下修改,但是我仍然访问了默认的 Pivotal tc Server Runtime 主页,而不是我自己的主页:

<Context docBase="" path="/myApp"  ... />

我应该在其他位置应用这些更改以使其生效吗?显然有一点我不明白。

非常感谢您的意见。

【问题讨论】:

【参考方案1】:

查找tomcat's documentation 以查找您在 Context 元素中提到的两个属性,您会发现:

文档库:

此文档库(也称为上下文根)目录 Web 应用程序,或 Web 应用程序归档文件的路径名 (如果此 Web 应用程序直接从 WAR 执行 文件)。您可以为此目录或 WAR 指定绝对路径名 文件,或相对于 appBase 目录的路径名 拥有主机。

除非上下文元素是 在 server.xml 中定义或 docBase 不在 Host 的 应用基础...

路径

此 Web 应用程序的上下文路径,与 每个请求 URI 的开头以选择适当的 Web 申请处理。一个内的所有上下文路径 特定的主机必须是唯一的。如果您指定一个上下文路径 空字符串 (""),您正在定义默认的 Web 应用程序 此主机,它将处理所有未分配给其他主机的请求 上下文。

该属性只能在静态定义上下文时使用 服务器.xml。在所有其他情况下,路径将从 用于 .xml 上下文文件或 docBase 的文件名。

即使在 server.xml 中静态定义一个 Context 时,这个属性 除非 docBase 不位于 主机的 appBase 或 deployOnStartup 和 autoDeploy 均为 false。如果 不遵守这条规则,很可能导致双重部署。

换句话说:您应该修改path 属性。执行此操作时,请确保还取消部署可能与您自己的定义冲突的默认内容。

您还会发现 "" 不是有效的 docBase,因为它指定了 WAR 文件或目录。

【讨论】:

以上是关于Pivotal TC 默认网站覆盖的主要内容,如果未能解决你的问题,请参考以下文章

Pivotal-tc-Server与Tomcat区别

eclipse找不到Pivotal tc server的安装目录

如何在 Pivotal TC 服务器中配置 Oracle 数据源 JNDI?

将 Spring Boot Web 应用程序与 Pivotal TC Server 一起使用

Gitlab - Pivotal Tracker集成

Pivotal,天赋而成的云原生转型引导者