设置 MockServletContext 的真实路径

Posted

技术标签:

【中文标题】设置 MockServletContext 的真实路径【英文标题】:Setting real path to MockServletContext 【发布时间】:2013-03-22 15:25:48 【问题描述】:

我正在尝试存根 MockServletConfigMockServletContext。在我的 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 的真实路径的主要内容,如果未能解决你的问题,请参考以下文章

如何为所有具有真实href的链接设置处理程序?

github无法获取真实名称

003-Nginx 设置Header 获取真实IP

使用 CloudFlare、Heroku 和 RoR 时如何设置真实 IP 地址?

eurekaclient向eurekaserver注册使用真实ip设置

VMware8中 虚拟机和真实机ping不通!!!