我在JBoss 4.0.2中有一个部署为war的servlet。我有一个部署应用程序的属性文件。我应该在哪里放这个文件?在jboss server \ default \ conf文件夹的conf目录下?如何以便携式方式加载该属性文件?在作为战争部署在JBoss中的java servlet中加载属性文件
回答
来加载性能在便携式方式文件,最好的办法是把它放在Web应用程序的类路径(无论是在JAR下WEB-INF/lib/
或下WEB-INF/classes/
或应用服务器的classpath,如果你想能够编辑该文件而无需重新打包您的Web应用程序)并使用Class#getResourceAsStream(String)
。
以下代码获取一个InputStream
为驻留在同一个包作为servlet在其中执行的代码属性文件:
InputStream inStream = Thread.currentThread().getContextClassLoader()
.getResourceAsStream("myfile.properties");
然后,load(InputStream)
它变成一个Properties
对象(跳过异常处理) :
Properties props = new Properties();
props.load(inStream);
最好的地方,把它就是网络应用自己的文档根目录下,如“./WEB-INF/myapp.properties”,即相对于在servlet容器解开你的.war
或.ear
文件。您可以直接在.war
中提供属性文件。
ServletContext
有一个方法getRealPath(String path)
返回文件系统中的实际路径。使用真实路径,您可以将其加载到Properties
集合中。
更新 您的评论代码试图查找为“/”真正的路径,你应该问你的属性的相对路径文件,如:
String propertiesFilePath = getServletContext().getRealPath("WEB-INF/application.properties");
Properties props = properties.load(new FileInputStream(propertiesFilePath));
所以我尝试了以下内容: String propertiesFilePath = getServletContext()。getRealPath(“/”)+ File.separator +“WEB-INF”+ File.separator +“application.properties”; properties.load(new FileInputStream(propertiesFilePath)); 我得到一个FileNotFoundException。我不明白我做错了什么。 – Carlosfocker 2010-01-06 20:13:49
如果属性文件可以与应用程序一起部署使其成为源代码树的一部分。这将导致属性文件位于WEB-INF/classes文件夹中。
然后可以使用
Properties properties = loadProperties("PropertyFileName.properties", this.getClass());
...
public static Properties loadProperties(String resourceName, Class cl) {
Properties properties = new Properties();
ClassLoader loader = cl.getClassLoader();
try {
InputStream in = loader.getResourceAsStream(resourceName);
if (in != null) {
properties.load(in);
}
} catch (IOException e) {
e.printStackTrace();
}
return properties;
}
只要得到ServletContext中的保持和再
InputStream stream = getServletContext().getResourceAsStream("/WEB-INF/log4j.properties");
Properties props = new Properties();
props.load(stream);
这将总是工作,无论你是否部署战争或战争爆炸阅读。
- 1. 在Jboss部署战争 - MAVEN
- 2. JBoss战争部署
- 3. 将战争部署到JBOSS
- 4. 在jboss上部署战争as7
- 5. JBoss AS 7中的战争部署
- 6. 在jboss的部署目录之外部署战争
- 7. 在linux上部署战争
- 8. ant任务在jboss上部署/取消部署战争
- 9. GlassFish 3中部署的战争文件
- 10. 战争文件部署
- 11. JBOSS战争部署无法使用mysqlds.xml
- 12. JBoss 4.x没有将src文件夹部署到战争中
- 13. 从intellij和maven在jboss 7上部署爆炸式战争
- 14. Jboss 7战争部署失败
- 15. 如何使用Jboss Tools Eclipse插件在Jboss中“热”部署战争依赖?
- 16. Glassfish战争部署Jar未加载
- 17. JBoss 6 - 在战争包装中部署ejb
- 18. 战争部署init方法
- 19. 部署到JBoss 7的Resteasy战争抱怨没有发现“org.resteasy.plugins.server.servlet.ResteasyBootstrap”
- 20. 部署战争问题
- 21. 如何在Tomcat中部署战争6
- 22. Django的Jython的战争文件部署
- 23. 是否可以将爆炸战争文件部署到JBoss 4.2.3?
- 24. 将战争文件部署到JBoss 7.1时获取404
- 25. SpingBoot在部署的战争中丢失的日志文件(tomcat)
- 26. 蜻蜓战争文件重新部署
- 27. restSQL战争的部署问题
- 28. 在Wildfly中与战争部署共享util jar文件
- 29. 多张战争部署8
- 30. 部署战争到Tomcat
需要这个项目得到取消,所以我从未跟进过。 – Carlosfocker 2010-12-29 15:09:03