2017-04-16 674 views
0

使用Spring Boot。我正在嘗試使用Apache POI庫解析項目中本地存儲的excel文件。我的目錄結構如下所示:Spring Boot無法使用ClassPathResource查找文件

  • SRC

    • 主要

      • 的Java

        • com.app
          • 控制器
          • 車型
          • 庫< - 我從這裏
      • 資源

        • 靜態
          • Test.xlsx <呼籲 - 我想訪問此

File excel = new ClassPathResource("Test.xlsx").getFile(); 

File file = new File(classLoader.getResource("src/main/resources/static/test.xlsx").getFile()); 

我已經嘗試上述兩種方式訪問​​該文件,我已經嘗試的路徑很多變化的文件,但沒有任何工作。我沒有得到構建錯誤或運行時錯誤,該文件是根本找不到,當我嘗試調用該方法時,我得到該行上的NullPointerException。

+1

想這[文章](http://stackoverflow.com/questions/36371748/spring-boot-access-static-resources-missing-scr -main-resources)可能爲您提供解決方案。 –

+0

@RajithPemabandu我已經嘗試了該帖子提出的解決方案,但仍然沒有找到 – arbabk

回答

0

supoose你只覆蓋擴展WebMvcConfigurerAdapter

@Override 
public void addResourceHandlers(final ResourceHandlerRegistry registry) { 
    registry.addResourceHandler("/resources/**").addResourceLocations("/resources/"); 
} 

這是一個博客張貼關於Spring資源@Configuration類的addResourceHandlers方法 - here

看看春天documentation瞭解更多詳情。

+0

我沒有使用Spring MVC我只是簡單的設置。這也可以通過在application.properties中添加「spring.mvc.static-path-pattern =/resources/**」來實現嗎? – arbabk

+0

是的。但願如此。 –

+0

它沒有工作...... – arbabk

0

我相信你的情況下,正確的是

new ClassPathResource("/static/Test.xlsx").getFile() 
+0

莫名其妙地不起作用 – arbabk