2016-05-30 6 views
0

Ich habe Probleme beim Laden einer Ressourcendatei von einer Methode, die mit @ PostConstruct innerhalb eines Service annotiert ist.Laden von Ressourcen in PostConstruct-Methode

@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 ... 

    } 

} 

Ich bekomme weiterhin den Fehler IllegalStateException: The resources may not be accessed if they are not currently started.

Wohin gehe ich falsch? Ist es vielleicht etwas mit der Reihenfolge der Bean-Initialisierung?

+0

@PostConstruct wird aufgerufen, nachdem Bean vollständig initialisiert wurde, idealerweise sollte ResourceLoader injiziert werden. Vielleicht, Servlet Version Problem? Schauen Sie sich hier die Antwort hier an: http://stackoverflow.com/a/29453024/1969874 –

Antwort

0

Wenn Sie nur eine einzelne Ressource laden dann die Sternchen entfernen (*) von Ihrem Classpath und sicherzustellen, dass die Datei in src/main/resources liegt

Mein Instinkt ist, dass dies ein Problem Classpath ist und etwas passt nicht zusammen. Wenn Sie weiterhin Probleme haben, laden Sie ein Beispielprojekt hoch, das dieses Problem veranschaulicht.

Verwandte Themen