weblogic获取应用目录路径

一.背景说明

  在项目开发过程中,本地开发用的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/

posted @ 2016-06-21 10:15  向东方  阅读(14474)  评论(0编辑  收藏  举报