我必须访问位于应用服务器文件系统目录中的配置文件,但它不是作为我的Java EE应用程序的一部分进行部署的。
在这种情况下,getResourceAsStream()会帮助我吗?
答案 0 :(得分:2)
在这种情况下,getResourceAsStream()
会帮助我吗?
除非配置文件在类路径上,否则不行。您将使用java.io
来执行您需要的操作,除非您可以说服appserver通过某种非标准方式为您提取它。
这将带您离开JavaEE领域,并冒着与appserver安全模型发生冲突的风险。
答案 1 :(得分:1)
在实时应用程序中,“外部配置”文件起着非常重要的作用。 外部化Property文件可以简化构建和部署过程。 因为它们被放置在外部位置(未包含在WAR文件中)的任何变化 这些不需要新的构建和部署。
为了对属性文件进行外部化,您只需要将属性文件放入 一个外部文件夹,并通过将其放在Classpath中使该文件夹可供JVM访问 如下所示。假设您将您的propety文件放在“C:\ conf”
中将此文件夹添加到设置ENV或服务器启动脚本,如下所示。
set "CLASSPATH=%CLASSPATH%%CATALINA_HOME%\bin\bootstrap.jar;C:\conf
或者在Java Cmd之后添加如下。
java -cp c:\conf yourClass
请在WEB-INF / Classes文件夹中使用“getResourceAsStream”读取此配置文件
getClass().getClassLoader().getResource("Configuration.properties").getFile();