Java在war文件中查找配置文件的相对路径



我正在尝试访问以前放在config文件夹中的config.properties文件。经过一番研究,我把它移到了WEB-INF文件夹中。但即使在我移动了它之后,当我运行程序时,它仍然会返回java.lang.NullPointerException。用于存储以下一些密码信息的代码:

ClassLoader resource = ConnectionManager.class.getClass().getClassLoader();
URL path = ConnectionManager.class.getClass().getResource("/WEB-INF/config.properties");

props.load(new FileInputStream(path.getFile()));

String passwordds = props.getProperty("datasource.password");

这些是我找到的代码,我试图使用它,但仍然得到了null异常。

我不能使用绝对路径,因为这个项目将部署到生产服务器上,如.war文件中所示。请告诉我什么是最好的方法,因为我还是初学者。

您应该检查构建工具生成的war,并找到配置文件的真实位置。

对于maven项目,默认的资源目录是/src/main/resources/

因此,在战争中,/src/main/resources/config.properties将被放在/WEB-INF/classes/config.properties中。

您可以使用getClass().getResourceStream("/config.properties")(getResource有时在j2ee环境中不起作用(来获取它

最新更新