2014-04-01 11:39:44

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;
    }
发表回复