设置 MockServletContext 的真实路径
Posted
技术标签:
【中文标题】设置 MockServletContext 的真实路径【英文标题】:Setting real path to MockServletContext 【发布时间】:2013-03-22 15:25:48 【问题描述】:我正在尝试存根 MockServletConfig
和 MockServletContext
。在我的 servlet init()
方法中,servlet 像这样获取 realPath:
String realPath = servletContext.getRealPath(fileSeperator+"WEB-INF");
对于我的测试用例,realPath 为空。我正在尝试这样设置:
MockServletContext context = new MockServletContext();
context.setContextPath("D:/Projects/ProjectName/webapps");
MockServletConfig config = new MockServletConfig(context);
此处 WEB-INF 文件夹位于 webapps
文件夹中。
我的MockServletContext
有什么问题?
【问题讨论】:
【参考方案1】:您必须在路径前添加file:/
。
例如:
ServletContext context = new MockServletContext("file:/D:/Projects/ProjectName/webapps");
【讨论】:
【参考方案2】:从 Spring 3.x 开始,getRealPath
基于 resourceBasePath
而不是 contextPath
,因此只需使用适当的 MockServletContext
构造函数正确设置它
new MockServletContext("D:/Projects/ProjectName/webapps", null)
【讨论】:
以上是关于设置 MockServletContext 的真实路径的主要内容,如果未能解决你的问题,请参考以下文章
使用 CloudFlare、Heroku 和 RoR 时如何设置真实 IP 地址?