xml - Tomcat 6 到 Tomcat 7 导致上下文路径停止协作

标签 xml jsp tomcat contextpath

我有一个在 Tomcat 6 中流畅运行的 Web 应用程序。假设它在 server:8282/MyApplication 上运行。我有一个如下所示的上下文 xml:

<Context crossContext="true"
         debug="5"
         docBase="MyApplication"
         path="MyApplication"
         reloadable="true">

在我的应用程序中,我的链接看起来像

server:8282/MyApplication/myAction.do?params=blah

当我将它切换到 Tomcat 7 时,它似乎将链接更改为:

server8282/myAction.do?params=blah

我没有更改应用程序中的任何内容,两个地方的代码相同。是否有一些全局设置我可以更改以重新获得“MyApplication”?

编辑:例如,生成链接的代码是:

<a href="<%=request.getContextPath() %>/myAction.do?params=blah">do the blah</a>

最佳答案

似乎您的部署过程出了点问题,出于某种原因,Tomcat 正在尝试在服务器的根目录下为您的应用程序提供服务,因此您的 ${pageContext.request.contextPath}返回是空的。

由于我不确定您的确切部署要求,请尝试以下过程之一。为了确保并避免配置冲突,请在全新的 Tomcat 7 安装上执行此操作:

  1. 如果你有 MyApplication.war文件只需将其放在 <CATALINA_HOME>\webapps , 不要使用任何上下文文件(注意 war 文件中的上下文文件,即 /META-INF/context.xml )
  2. 如果您有分解的应用程序,请创建一个文件夹 MyApplication里面webapps并将应用程序内容放在那里(同样,没有 context.xml )。

如果您真的需要将您的应用程序保留在webapps 之外:

  1. 添加一个新的 Context元素到 <CATALINA_HOME>\conf\server.xml里面<Host> :

    <Context path="/MyApplication"
             docBase="/absolute/physical/path/to/MyApplication" 
             reloadable="true"
             crossContext="true">
    
  2. 或者创建一个 MyApplication.xml文件在 <CATALINA_HOME>\Catalina\localhost具有上述内容。

有关更多信息,请参阅 The Context Container documentation .

关于xml - Tomcat 6 到 Tomcat 7 导致上下文路径停止协作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14905388/

相关文章:

java - 结合 shiro :hasPermission tags

java - 在外部调用中使用 Spring @Async 的任何理由

sql-server - T-SQL 使用 XPath 查询 XML 列非常慢 - 如何改进或替代?

html - 如何使用 struts1.3 Action 生成动态组合框并在页面提交时也获取其值?

javascript - 限制文本字段中的整数

java - Netbeans 不会部署到 Tomcat

java - 通过 DNS 名称访问托管在单个服务器中的多个网站

mysql - 如何用 MySQL 中的节点拆分 XML 值?

xml - XTDE0160 : XSLT 1. 0 兼容模式在此配置中不可用/发票的内置模板规则:未命名模式下的请求

xml - 是否可以在内部使用 XML 模式,就像 DTD 一样?