最近在WebLogic下部署一个应用时,采用了WAR包方式,代码使用了SPRING的ServletContextResource类,运行抛出空指针异常。后改用request.getRealPath("/"),结果仍为null。原来使用WAR包方式无法支持ServletContext类的getRealPath()方法。解决方案:
使用ServletContext的getResource或getResourceAsStream获取WEB应用的文件路径
最后采用如下方法获取WEB应用目录路径:
String tmpFolderPath = request.getSession().getServletContext().getResource("/phototemp/photo").getFile();
注意this.getServletContext()可以在Tomcat下使用,但无法在WebLogic下使用,WebLogic下使用如下方法替代:
request.getSession().getServletContext()
或
request.getServletConfig().getServletContext().