Weblogic war包部署时获取Web根目录问题

在Weblogic当中如果以war包方式部署则不能用request.getRealPath(“/”)获取web根目录,

this.getClass().getClassLoader().getResource("/").getPath()即可获取:

/**
 * 获取web目录,Weblogic 默认以war包部署的时候不能用getRealPath
 * getResource("/")获取的是当前应用所在的类路径,截取到WEB-INF
 * 之后的路径就是当前应用的web根目录了
 * @param request
 * @return
 */
public String getDocumentRoot(HttpServletRequest request){
    String webRoot = request.getSession().getServletContext().getRealPath("/");
    if(webRoot == null){
        webRoot = this.getClass().getClassLoader().getResource("/").getPath();
        webRoot = webRoot.substring(0,webRoot.indexOf("WEB-INF"));
    }
    return webRoot;
}


你可能感兴趣的:(Java)