我有一个我在tomcat本地运行的Web应用程序,我也部署到了Cloudbees。但是,我使用虚拟主机与使用上下文路径的本地tomcat有一些问题。
我通过
访问我的本地tomcat应用程序http://localhost:8080/SpringMVC
在cloudbees中,我通过
访问它到目前为止一切顺利,但问题是当我尝试提交时。在本地,这成功提交
http://localhost:8080/SpringMVC/HelloWorld
但是在cloudbees上,它尝试(并且失败)提交到
http://springmvc.shaunabram.cloudbees.net/SpringMVC/HelloWorld
如果我手动将浏览器URL修改为
http://springmvc.shaunabram.cloudbees.net/HelloWorld
一切正常。
我看到了类似的问题posted here,但建议的解决方案是
我原以为解决方案可能是使用CloudBees Web配置文件以某种方式配置要使用的应用程序(类似于http://springmvc.shaunabram.cloudbees.net/SpringMVC
作为我的基本URL,但我看不到任何示例(所有CloudBees Web配置文件示例似乎都用于特定于环境的DataSource)。
任何帮助都非常感谢!
肖恩
答案 0 :(得分:2)
Web应用程序绝不应使用绝对路径,并始终使用ServletContext.getContextPath()构建URL。我想你会遇到这个问题,假设你使用SpringMVC为你处理这个问题。
或者你可能硬编码了一些资源路径,但是应该使用它来生成适当的路径,或者使用scriptlet来附加上下文路径:
<c:url value="/style.css" var="url" />
<link rel="stylesheet" href="${url}" type="text/css">
或
<link rel="stylesheet" href="${pageContext.request.contextPath}/style.css" type="text/css">
答案 1 :(得分:0)
CloudBees使用ROOT上下文路径[/]运行您的应用程序。您至少有两个选项可以让您的应用在本地环境和云环境中运行: