打成WAR包后如何取得该项目的绝对路径

打成WAR包后怎么取得该项目的绝对路径?
我用weblogic 10.3.4.
不打WAR包进行部署。正常。
我程序中取得该项目的绝对路径程序为:
String realRootPath = ServletActionContext.getServletContext().getRealPath("/");

但我打成WAR包部署后,调试程序,结果:
上面程序取得的变量为null.

打成WAR包后怎么取得该项目的绝对路径?




------解决方案--------------------
String path = System.getProperty("java.class.path");
String separetor = System.getProperty("file.separator");
String absolutePath = (new File(path)).getAbsolutePath();
------解决方案--------------------
if (absolutePath.indexOf(";") >= 0) {
absolutePath = absolutePath.split(";")[0];
}
int i, j;

for (i = 0; (j = absolutePath.indexOf(separetor, i)) >= 0; i = j + 1)
;
ROOT_PATH = absolutePath.substring(0, i);
------解决方案--------------------
这个是tomcat和weblogic不同的地方了。
weblogic自己不会解压war包出来,weblogic的war包部署时,需要自己添加一个进行war解压的class文件,然后配置在web.xml里面,否则在war包里面拿不到路径信息。我之前搞weblogic部署时都是部署文件夹,都不部署war包了。
------解决方案--------------------
把代码
getServletContext().getRealPath("/")
  修改成 
getServletContext().getResource("/")

URL url = request.getSession().getServletContext().getResource("/");
String path = request.getSession().getServletContext().getRealPath("/")
getRealPath()获得的是绝对路径,getResource()获得的是相对路径,对于开发人员来说都是使用相对路径,因为使用的是绝对路径一旦你换了服务器或者系统,那便会出现路径或者类加载的错误,典型的如果你在windows下可能有C,D盘之分,但是在linux系统下便没有盘符之分了,所以建议使用getResource()
如果你使用的是getResource()你在用myeclipse或者eclipse时把项目压缩成war包后对你的部署工作不会存在影响,但是如果是用的绝对路径,一定会有影响! 
参考 tomcat迁移weblogic路径问题 很久不搞WebLogic了,希望这个对楼主有帮助