我在 Eclipse 中的构建路径如下所示:
ProjectName
-- WEB-INF
-- classes
-- myClass.class
-- configs
-- myConfig.xml
我当前配置的绝对路径如下所示:
C:\Development\Java\ProjectName\WEB-INF\configs\myConfig.xml
我正在使用 JAXB 进行绑定(bind),它需要一个 FileInputStream。 FileInputStream 需要是 XML 配置文件的流。但是,我不知道如何为我的配置获取 FileInputStream,而且我一直收到 FileNotFoundException。
我希望以这样一种方式加载此配置,即无需对配置路径进行硬编码,因为我计划开源该项目。我看到很多例子,其中有人只是硬编码完整的绝对路径,但我需要它是更灵活的“像”这样的东西:
new FileInputStream("/WEB-INF/configs/myConfig.xml");
谢谢!
最佳答案
我建议将 myConfig.xml 放在 WEB-INF/classes 目录中,并通过类加载器加载它,因为它在类路径中。在 servlet 上下文中调用 getResourceAsStream() 将返回一个您可以使用的 InputStream。它与上下文根相关,因此您可以选择该 WAR 并将其放在任何地方 - 您的代码仍然有效。
关于java - 如何使用 FileInputStream 加载配置 xml 文件,但出现 FileNotFoundException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2211991/