我在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