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

yyyyy_3 2014-06-09 06:00:53
我用weblogic 10.3.4.
不打WAR包进行部署。正常。
我程序中取得该项目的绝对路径程序为:
String realRootPath = ServletActionContext.getServletContext().getRealPath("/");

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

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



...全文
695 8 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
海若 2015-07-17
  • 打赏
  • 举报
回复
Thread.currentThread().getContextClassLoader().getResource(aResource).toString(); 获取URL格式的路径 再截取
姜小白- 2014-06-11
  • 打赏
  • 举报
回复
引用 5 楼 yyyyy_3 的回复:
我试了,都不行,还有什么办法
楼主试了在war里面取路径都不行吗?如果都不行,那就写一个servlet,配置在web.xml里面,让项目加载的时候先去把war解压出来,这样获取路径时就可以在文件夹里面获取了。
lodamemory 2014-06-11
  • 打赏
  • 举报
回复
xxxxxxxAction.class.getResource("/").getPath() 试试这个行不行action就是随便一个class文件
yyyyy_3 2014-06-10
  • 打赏
  • 举报
回复
我试了,都不行,还有什么办法
姜小白- 2014-06-09
  • 打赏
  • 举报
回复
把代码
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了,希望这个对楼主有帮助
姜小白- 2014-06-09
  • 打赏
  • 举报
回复
这个是tomcat和weblogic不同的地方了。 weblogic自己不会解压war包出来,weblogic的war包部署时,需要自己添加一个进行war解压的class文件,然后配置在web.xml里面,否则在war包里面拿不到路径信息。我之前搞weblogic部署时都是部署文件夹,都不部署war包了。
partys 2014-06-09
  • 打赏
  • 举报
回复
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);
partys 2014-06-09
  • 打赏
  • 举报
回复
String path = System.getProperty("java.class.path"); String separetor = System.getProperty("file.separator"); String absolutePath = (new File(path)).getAbsolutePath();

67,549

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧