[英]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.xml
或context.xml
很有可能更适合你想要做的事情,但......
尝试把server.ini
在WEB-INF/classes
,或做一些像这样 。
问题是我使用的是具有非限定路径的System类加载器,所以它期望在java.lang
包中找到我的server.ini
。
由于我的文件在src/main/resources
,我应该使用当前类的类加载器,使用绝对路径:
getClass().getResourceAsStream("/server.ini")
这适用于战争和罐子。
“ 在Java中加载资源的首选方式 ”问题对资源加载有很好的解释。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.