我有一个中央类 (RuntimeConfiguration
),它保存了应用程序约 100
个参数。 这些参数取自存储在WEB-INF
文件夹中的一个XML文件。 在我的开发环境中,我硬编码了路径,但出于非常明显的原因,这不是一种生产性的解决方案。
出于可移植性的原因(我的应用程序可能在Windows或Unix下执行Tomcat或Jetty),我希望从我的RuntimeConfiguration
类内部以通用方式访问此文件。
我知道,如果我有一个servlet,我可以使用getRealPath
,但是RuntimeConfiguration
并未在servlet上下文中启动。它是通过applicationContext.xml
从quartz工作控制启动的作业(爬虫)调用的。现在这似乎是我的核心问题。
有人能告诉我如何在这种环境下获取我的XML的绝对路径吗?
我尝试过这个ClassLoader
方法,但它给了我一个NullPointerException
:
ClassLoader loader = this.getClass().getClassLoader();
loader.getResource("WEB-INF");
result = loader.getSystemResource(RTCF).toString();
我也尝试过
URL url = this.getClass().getClassLoader().getResource("WEB-INF");
这也会抛出空指针异常
有没有人能给我一个便携的解决方案,可以在我的开发机器上运行,并且可以在部署了WAR文件的生产系统上工作?
顺便说一下,这个方法最好能够处理基于Windows、Mac OS X和Unix的系统。
NPE
?你可以添加堆栈跟踪以获得更好的理解。 - OO7RuntimeConfiguration
声明为bean? - OO7