2015-10-15 60 views
0

我有下列方式加載資源庫:加載資源在服務器端失敗

BufferedReader r = new BufferedReader(
     new InputStreamReader(classLoader.getResourceAsStream(String.format("%s.txt", filename)), "UTF8") 
); 

圖書館的測試運行正常。

之後,另一個webapp(spring-boot)將該庫用作依賴項(使用Maven)。但!如果我從Intellij運行該webapp - 工作正常。但是,當我把它上傳到服務器,或java -jar本地運行它,它失敗:

Caused by: java.lang.NullPointerException: null 
    at java.io.Reader.<init>(Reader.java:78) 
    at java.io.InputStreamReader.<init>(InputStreamReader.java:97) 

任何想法?

+0

你用maven?或者你的建築工具是什麼?這是一個類路徑問題,在IDE中,IDE擁有自己的類路徑,並且會看到你的jar,但是當你將應用程序解壓到服務器時,如果它不是你的webapp類路徑,它會拋出異常。嘗試在命令提示符下構建您的Web應用程序。你會在當地看到同樣的問題。 – erhun

+0

是的,我使用maven – nKognito

+0

請在命令提示符下使用mvn clean install並檢查它是否工作或拋出異常。 – erhun

回答

1

我想這取決於使用哪個ClassLoader。 我建議你定義classLoader

ClassLoader classLoader = SomeClass.class.getClassLoader(); 

其中SomeClass是在包含名爲「.txt」資源相同的罐子類。

相關問題