【发布时间】:2012-04-20 01:14:38
【问题描述】:
应用程序部署在 Tomcat6 上的上下文路径“/environame/appname”上。
<Context
...
path="/environame/appname"
...
</Context>
但我无法使用以下 URL 访问我的应用程序:
我必须在“environame”和“appname”之间使用下划线而不是斜线。
Tomcat 5 的工作方式不同。
如果是 Tomcat 5,则 URL 中不会有下划线:
我应该更改我的应用程序或 Tomcat 6 的配置以在“环境名称”和“应用程序名称”之间使用斜线而不是下划线来访问我的应用程序?
更新:
path 此 Web 应用程序的上下文路径,与每个请求 URI 的开头匹配以选择合适的 用于处理的 Web 应用程序。一个内的所有上下文路径 特定的主机必须是唯一的。如果您指定一个上下文路径 空字符串 (""),您正在定义默认的 Web 应用程序 此主机,它将处理所有未分配给其他主机的请求 上下文。
除非静态设置,否则不得设置此字段的值 在 server.xml 中定义一个上下文,因为它将从 用于 .xml 上下文文件或 docBase 的文件名。
http://tomcat.apache.org/tomcat-5.5-doc/config/context.html
我们将上下文 xml 文件存储到 $CATALINA_HOME/conf/Catalina/localhost/environame_appname.xml 文件中。
Tomcat 5.0.28 使用 Context 元素的路径属性。
Tomcat 6 使用上下文 xml 文件的名称。
是否可以更改配置以使用路径属性而不是 xontext xml 文件的名称?
回答:
有个bugbug#46713
如果在上下文 xml 中的上下文标记内设置了路径属性,则它 被忽略。相反,路径设置为 "/" + 。虽然带有“/”的路径也可以 通过将 '/' 替换为 '#' 在文件名中进行编码 令人困惑的是,现有的路径属性被简单地忽略了。
所以,我只需要将我的上下文 xml 文件重命名为 environame#appname.xml。
【问题讨论】:
-
与其在您的问题中发布解决方案,不如发布并接受您自己的答案。