上下文路径与webapp-runner中的Spring UrlTag冲突?

时间:2012-11-30 16:51:18

标签: java spring heroku

我们在Heroku中部署了一个Java / Spring应用程序,使用优秀的webapp-runner作为Tomcat-lite servlet容器。在从7.0.27.1升级到7.0.31.1时,似乎设置默认上下文路径“/”的行为会导致<spring:url>标记出现问题。具体来说,使用默认上下文路径“/”,像<spring:url value="/foo/bar"/>这样的标记最终会呈现为//foo/bar。我在OS X(Chrome,Safari,Firefox)上测试的所有浏览器似乎都没有特别优雅地处理这些浏览器,并尝试加载http://foo/bar,导致各种混乱。

我可以想到两个解决方法:

  • --context-path ""指定webapp-runner参数 - 这似乎是“最佳”,因为它对应于7.0.27.1行为
  • 将代码写为<spring:url context="" .../> - 不确定可能会产生哪些其他后果,考虑SpringUrl如何使用前导斜杠来确定UrlType

这些都是合理的吗?如果没有,我还应该考虑其他解决方案吗?

2 个答案:

答案 0 :(得分:2)

webapp-runner-7.0.34.1已将默认--context-path更改回""。如果您升级,它应该解决您的问题。

答案 1 :(得分:0)

我有类似的问题双斜杠// ,并从webapp-runner 7.0.34.0升级到 webapp-runner 7.0.34.1解决了我的问题

我曾尝试使用<spring:url>${pageContext.request.contextPath}。升级webapp-runner解决了这两种情况的问题。

更多详情:http://bit.ly/1zuL1T1