[英]Load file from classpath in wildfly +java
我有一個簡單的 jsp 應用程序。 我正在嘗試在 src/xml 文件夾中加載一個 xml 文件。 我正在使用下面的代碼,但得到 FileNotFound 異常。 請讓我知道如何解決此問題?
Public static void load() {
Document doc = parseDoc(Thread.currentThread().getContextClassLoader().getResource("/xml/test.xml").getFile())
}
這是拋出 FileNotFound 異常,因為路徑顯示為/D:/Wildfly/bin/content/aap.war/web-inf/classes/xml/test.xml
嘗試了幾種不同的方法,但沒有奏效。 請幫我
一般注意事項:
請寫public
而不是Public
。 “src”不是加載某些東西的好文件夾。 “src”通常包含您的源代碼(又名 *.java 文件) - 在文件編譯並放入服務器后,您無法訪問。
我的建議是,您將 XML 文件放入 jar 文件中。 所以 zip 您的 xml 文件夾並將其重命名為例如“xml.jar”。 我假設有一個文件夾 xml/test.xml。 這個 jar 文件作為 your.ear 或 .war 文件的一部分添加到類路徑中。 部署后,您可以通過以下方式訪問它:
Thread.currentThread().getContextClassLoader().getResourceAsStream("xml/text.xml");
也不要直接閱讀它,而是檢查 null:
InputStream stream = Thread.currentThread().getContextClassLoader().getResourceAsStream("xml/text.xml);
if (stream == null) {
throw new IllegalStateException("Resource 'xml/text.xml' not found on classpath");
}
//continue
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.