标签:
一.背景说明
在项目开发过程中,本地开发用的windows+tomcat,到了生产中,就成了linux+weblogic。部署工程后,应用报错,显示获取应用目录返回为null。
在网上查阅资料,发现在weblogic中,war包部署,就没有应用路径的说法了,所以只能返回null。
二.解决方法
/* * 获取项目的根目录 * 因为tomcat和weblogic获取的根目录不一致,所以需要此方法 */ private String getWebRootUrl(HttpServletRequest request){ String fileDirPath = request.getSession().getServletContext().getRealPath("/"); if(fileDirPath == null){ //如果返回为空,则表示服务器为weblogic,则需要使用另外的方法 try{ return request.getSession().getServletContext().getResource("/").getFile(); }catch(MalformedURLException e){ LogUtil.MSG.info("获取项目的根目录出错!", e); throw new BizException("获取项目的根目录出错!"); } }else{ return fileDirPath; } }
tomcat下输出 E:\workspace\.metadata\.plugins\org.eclipse.wst.server.core\tmp1\wtpwebapps\bqsims_client\
weblogic下输出 /home/weblogic/Oracle/Middleware/Oracle_Home/user_projects/domains/domain7101/servers/AdminServer7101/tmp/_WL_user/bqsims_client/i3sdnr/war/
标签:
原文地址:http://www.cnblogs.com/xiayuscc/p/5600546.html