[英]getResourceAsStream returns null inspite of using servletContext()
[英]Spring ServletContext returns null
被奇怪的问题困住了。 我正在向我的类(定义为 @Service)添加一个 ServletContext,它总是返回 null。 尝试了@Autowired 和没有它。
此外,我在应用程序启动时没有收到任何错误。 只有当我调用 'servletContext.getRealPath("/WEB-INF/")' 时的空值
这是我尝试使用它的类:
@Service
public class MyFactory implements ServletContextAware {
@Autowired
ServletContext servletContext;
public void setServletContext(ServletContext servletContext) {
this.servletContext = servletContext;
}
private someMethod(){
servletContext.getRealPath("/WEB-INF/"); //this return null
}
}
PS servletContext
本身为空,不是.getRealPath("/WEB-INF/")
方法
您的问题描述令人困惑。 您说您添加了ServletContext
并且它返回 null( @Autowired
与否),这听起来像是servletContext
的值是 null,否则您的措辞和代码示例似乎表明getRealPath()
返回 null。
如果servletContext
为 null,则servletContext.getRealPath()
将导致NullPointerException
。
如果servletContext
不为 null,则servletContext.getRealPath()
将成功,但可能返回 null。
引用getRealPath()
javadoc :
如果 servlet 容器无法将给定的虚拟路径转换为真实路径,则此方法返回
null
。
因此,如果/WEB-INF/
位于尚未解压的 .war 文件中,则没有真正的路径,并且getRealPath()
将返回 null。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.