【问题标题】:Access files located in root of WAR file from ServletContextListener从 ServletContextListener 访问位于 WAR 文件根目录中的文件
【发布时间】:2012-09-13 21:55:19
【问题描述】:

我有一个.war 文件。我需要访问位于ROOT_OF_WAR/someFolder/myfile.txt中的文件

如何使用ServletContextListener 访问它?

ContextClassLoader#getResourceAsStream(resourceName) 是否指向网络应用程序的根目录(即.war 文件的根目录)?

或者我需要使用ServletContextEvent#getServletContext().getResourceAsStream("someFolder/myfile.txt"); 访问它?

【问题讨论】:

标签: java servlets servlet-listeners


【解决方案1】:
ServletContext context = servletContextEvent.getServletContext();    
File file = new File(context.getRealPath("/someFolder/myFile.txt"));

这就是你所需要的。 See here.

【讨论】:

  • getServletContext() 方法未定义用于类型 ServletContextListener。我只能从ServletContextEvent#getServletContext() 获得它 - 但它仍然可以工作吗?我对此有些担心。
  • 你为什么不试试看? :)
  • 历史悠久.. 我需要重新部署整个应用程序。不是 5 分钟,是 20 分钟左右
  • 我正在使用:new File(context.getRealPath("/WEB-INF/jdbc/hibernate.cfg.xml")) 来获取休眠配置文件。而且效果很好。它也在 ServletContextListener
猜你喜欢
  • 1970-01-01
  • 2015-08-24
  • 1970-01-01
  • 2012-11-01
  • 1970-01-01
  • 1970-01-01
  • 2018-10-12
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多