2017-10-04 2 views
1

Ich werde eine Datei im Ressourcenordner in meiner Springboot-Anwendung lesen. Ich habe ResourceLoader dazu benutzt. Aber ich bekomme eine FileNotFoundException, wenn ich versuche, meine Anwendung auszuführen.Lesen Datei im Ressourcenordner mit SpringBoot

Error creating bean with name 'demoController': Invocation of init method failed; nested exception is java.io.FileNotFoundException: class path resource [schema.graphql] cannot be resolved to absolute file path because it does not reside in the file system: jar:file:/home/dilan/Projects/demo/target/demo.jar!/BOOT-INF/classes!/schema.graphql 
    at org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor.postProcessBeforeInitialization(InitDestroyAnnotationBeanPostProcessor.java:137) ~[spring-beans-4.3.9.RELEASE.jar!/:4.3.9.RELEASE] 
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyBeanPostProcessorsBeforeInitialization(AbstractAutowireCapableBeanFactory.java:409) ~[spring-beans-4.3.9.RELEASE.jar!/:4.3.9.RELEASE] 
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1620) ~[spring-beans-4.3.9.RELEASE.jar!/:4.3.9.RELEASE] 
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:555) ~[spring-beans-4.3.9.RELEASE.jar!/:4.3.9.RELEASE] 

Unten ist mein Code

@Autowired 
private ResourceLoader resourceLoader; 

final Resource fileResource = resourceLoader.getResource("classpath:schema.graphql"); 
File schemaFile = fileResource.getFile(); 
TypeDefinitionRegistry definitionRegistry = new SchemaParser().parse(schemaFile); 
RuntimeWiring wiring = buildRuntimeWiring(); 

Kann jemand bitte helfen Sie mir diese

enter image description here

+0

@Yannic Klem NO ... Dieses Sie erwähnt nicht ein Duplikat der Frage. Die Verwendung mit ClassLoader funktioniert hier nicht. Hier frage ich, wie wir mit ResourceLoader auf die Datei zugreifen können. Wie können diese beiden ähnlich sein ....? Bitte versuchen Sie, auch den Inhalt zu lesen, bevor Sie nutzlose Kommentare – user5489038

+0

Sie haben Recht .. es dupliziert eine andere Frage: https://stackoverflow.com/questions/41754712/spring-boot-reading-text-file-using-resourceholder Bitte versuchen Sie es googlen Sie sogar einmal, bevor Sie nutzlose Fragen stellen .. –

+0

Sie können nicht Datei von einem 'jar' erhalten. versuchen Sie, die Akte als Strom zu holen. – Jaiwo99

Antwort

0

versuchen zu klären, unter den Code zu verwenden, um Dateien für den Zugriff auf Ressourcen mit Feder Ordner boot

File file = new ClassPathResource("schema.graphql").getFile(); 
2

Sie könnten ClassPathResource

Smth wie folgt verwenden:

InputStream inputStream = new ClassPathResource("schema.graphql").getInputStream(); 

Oder

File file = new ClassPathResource("schema.graphql").getFile(); 
Verwandte Themen