2016-05-30 10 views
0

サービス内の@PostConstructでアノテーションされたメソッドからリソースファイルを読み込む際に問題があります。PostConstructメソッドでリソースをロードする

@Service 
    public class MyService { 

    @Autowired 
    ResourceLoader resourceLoader; 

    //@Autowired 
    //private ApplicationContext applicationContext; 

    @PostConstruct 
    public void initialize() { 

     Resource res = resourceLoader.getResource("classpath*:myResource.csv"); 
     //Resource res = applicationContext.getResource("classpath*:myResource.csv"); 

     ... use loaded resource ... 

    } 

} 

私はエラーIllegalStateException: The resources may not be accessed if they are not currently startedを受け取り続けます。

どこが間違っていますか?おそらく、Beanの初期化の順序で何か?

+0

@PostConstructは、Beanが完全に初期化された後に呼び出されるため、理想的にはResourceLoaderが注入されている必要があります。おそらく、サーブレットのバージョンの問題?ここで答えを見てください:http://stackoverflow.com/a/29453024/1969874 –

答えて

0

あなただけの単一のリソースをロードしている場合は、あなたのクラスパスからアスタリスク(*)を削除し、ファイルはSRC /メイン/リソースに配置されていることを確認

私の本能が、これはクラスパスの問題や何かであるということです一致しません。それでも問題が解決しない場合は、この問題を示すサンプルプロジェクトをアップロードしてください。

関連する問題