应用程序部署在上下文路径“/environame/appname”上的 Tomcat6 上。
<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 文件的名称?
回答:
有一个 bug错误 #46713
如果在上下文 xml 中的上下文标记内设置了路径属性,则它会被忽略。相反,路径设置为 "/" + 。虽然通过将 '/' 替换为 '#' 可以在文件名中对带有 '/' 的路径进行编码很好,但简单地忽略现有路径属性是非常令人困惑的。
所以,我只需要将我的上下文 xml 文件重命名为 environame#appname.xml。