【问题标题】:Getting the path to current dynamic web project JAVA获取当前动态 Web 项目 JAVA 的路径
【发布时间】:2015-03-20 00:02:09
【问题描述】:

如何在我的应用程序已部署时访问 XML 文件?

我正在运行一个带有几个类和一个简单的休息服务的动态 Web 应用程序,但我没有任何实际的 servlet,所以访问 ServletContext 是不可能的,(据我所知)所以使用 getRealPath()不会工作。

一个例子: 我有一个连接到数据库的 DBcon 类,但必须从位于 /xml/db/oracle-properties.xml 的 XML 文件中加载属性

在普通的 Java 项目中,您可以简单地使用文件输入流,但它不适用于动态 Web 应用程序。

我怎样才能仍然加载 xml 文件?

【问题讨论】:

    标签: java xml eclipse servlets web-applications


    【解决方案1】:

    我读到这个就知道了:Where to place and how to read configuration resource files in servlet based application?

    我已将 xml 文件放在 WEB-INF/classes 中,然后使用此代码加载它:

    InputStream xmlFile = Thread.currentThread().getContextClassLoader().getResourceAsStream(fileName);
        prop.loadFromXML(xmlFile);
    

    【讨论】:

      【解决方案2】:

      如果文件在类路径中,您可以通过以下方式将其作为输入流获取:

      InputStream in = this.getClass().getResourceAsStream("xml/db/oracle-properties.xml");
      

      【讨论】:

      • 这给了我一个空指针异常,文件位于 WEB-INF 文件夹中。
      • WEB-INF 内容不是类路径的一部分,WEB-INF/classes 除外。看看here
      猜你喜欢
      • 1970-01-01
      • 2023-04-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-08-11
      • 2018-05-06
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多