提问者:小点点

枢轴TC默认网站覆盖


我有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个答案

匿名用户

查找您在Context元素中提到的两个属性的tomcat留档,您会发现:

文档库:

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

除非Context元素在server. xml中定义或docBase不在Host的appBase下,否则不得设置此字段的值…

路径

此Web应用程序的上下文路径与每个请求的开头相匹配URI选择适当的Web应用程序进行处理。特定主机中的所有上下文路径必须是唯一的。如果指定空字符串的上下文路径 (""), 则为该主机定义默认Web应用程序,该应用程序将处理未分配给其他上下文的所有请求。

此属性只能在server. xml中静态定义Context时使用。在所有其他情况下,路径将从用于.xml上下文文件或docBase的文件名中推断出来。

即使在server. xml中静态定义Context时,也不能设置此属性,除非docBase不在主机的appBase下,或者部署OnStartup和autoDeploy都为false。如果不遵循此规则,可能会导致双重部署。

换句话说:您应该修改path属性。当您这样做时,请确保还取消部署否则会与您自己的定义冲突的默认内容。

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