在JBoss中部署的java servlet中加载属性文件作为战争

Car*_*ker 8 java jboss properties

我在JBoss 4.0.2中将servlet部署为战争.我有一个已部署应用程序的属性文件.我应该把这个文件放在哪里?在jboss server\default\conf文件夹中的conf目录下?如何以可移植的方式加载该属性文件?

Pas*_*ent 17

要以可移植的方式加载该属性文件,最好的方法是将其放在Web应用程序的类路径上(如果您希望能够编辑该文件,则可以在app服务器类路径下面WEB-INF/lib/或下面的JAR中)WEB-INF/classes/重新打包您的Web应用程序)并使用Class#getResourceAsStream(String).

以下代码获取InputStream一个属性文件,该文件与执行代码的servlet位于同一个包中:

InputStream inStream = Thread.currentThread().getContextClassLoader()
                 .getResourceAsStream("myfile.properties");
Run Code Online (Sandbox Code Playgroud)

然后,load(InputStream)它进入一个Properties对象(跳过异常处理):

Properties props = new Properties();
props.load(inStream);
Run Code Online (Sandbox Code Playgroud)


jul*_*ius 5

然后抓住servletContext然后

InputStream stream = getServletContext().getResourceAsStream("/WEB-INF/log4j.properties");
Properties props = new Properties();
props.load(stream);
Run Code Online (Sandbox Code Playgroud)

无论您是部署战争还是爆炸战,这都将始终有效.