我们写我们的应用程序自定义的Log4j Appender。 该附加器应记录其事件的数据库。 现在我遇到的问题是建立数据库连接。 我们的JDBC设置在其中直接在WEB-INF文件夹位于一个名为jdbc.properties。
我试着用下面的代码访问的属性文件
InputStream stream = Thread.currentThread().getContextClassLoader()
.getResourceAsStream("jdbc.properties");
......但流的结果是零。 任何想法如何,我可以加载一个属性从WEB-INF文件夹中的文件在Log4j追加程序,而无需移动属性文件到另一个位置?
可能是你可以试试,
String path =Thread.currentThread().getContextClassLoader().getResource("/").toURI().resolve("../jdbc.properties").getPath();
Properties ps=new Properties();
ps.load(new FileInputStream(path));
您应该能够通过ServletContext中获取文件。 即:
ServletContext ctx = ...
InputStream stream = ctx.getResourceAsStream("/WEB-INF/jdbc.properties");
好吧,只是看见了,你没有访问ServletContext的 - 忘记了答案。
难道就没有可能添加信息的JDBC连接到log4j.properties? 你为什么要分离该二号呢?