繁体   English   中英

从战争中加载配置文件

[英]Load config file from a war

我有一个Maven项目,我试图将其打包为战争和罐子。 作为我的应用程序/ servlet初始化的一部分(取决于我是运行jar还是战争),我需要读取一个名为server.ini的文件。 我把文件放在src/main/resources/server.ini并尝试加载它,如下所示:

System.class.getResourceAsStream("server.ini");

但是,这总是会导致null 我究竟做错了什么?

server.ini文件应位于资源目​​录的根目录中。

通过将它放在webapp您可以通过http使文件可用,但是您需要在classpath上访问它,这意味着您应该将它放在资源目录中。

web.xmlcontext.xml很有可能更适合你想要做的事情,但......

尝试把server.iniWEB-INF/classes ,或做一些像这样

问题是我使用的是具有非限定路径的System类加载器,所以它期望在java.lang包中找到我的server.ini

由于我的文件在src/main/resources ,我应该使用当前类的类加载器,使用绝对路径:

getClass().getResourceAsStream("/server.ini")

这适用于战争和罐子。

在Java中加载资源的首选方式 ”问题对资源加载有很好的解释。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM