写在前面
图片上传功能, web项目部署在本地Tomcat上并没有问题, 但是打成war包部署到Linux服务器Weblogic下却出现如题问题, 导致图片上传失败.
问题代码
String realPath = uploadFile.getMultipartRequest().getSession().getServletContext().getRealPath("/") + "/" + path;//文件的硬盘真实路径
在Windows下部署到Tomcat没有问题, 项目打成war包后部署到Weblogic获取不到项目根目录.
解决方案
通过获取class文件所在路径, 然后对该路径进行处理.
String rootPath = this.getClass().getResource("/").getPath().replaceAll("^\\/", "");//获取到的这个路径包含/WEB-INF/classes
结果日志
home/weblogic/Oracle/Middleware/user_projects/domains/base_domain/servers/3/tmp/_WL_user/cqyyt/i9yd39/war/WEB-INF/classes/
home前面并没有"/", 而且还包含"/WEB-INF/classes/"这样的路径也不是想要的结果.
最终修改
将获取到的路径前加"/", 同时