2016-03-21 12 views
1

Ich bin auf einem dynamischen Webprojekt, und ich möchte eine Ressourcendatei laden.Web App Java Ressource aus einer Datei laden

Ich tat dies:

String queryTemplate = IOUtils.toString(this.getClass().getResource(
       "test.rq")); 

wo test.rq in src/main/resources existieren, aber ich habe Null-Zeiger für auf dieser Linie.

Ich dachte, vielleicht, dass die src/main/resources ist nicht die Haupt (Standard) Ressourcenordner in Maven, so dass ich dies in der pom

<build> 

     <resources> 
      <resource> 
       <directory>src/main/resources</directory> 
      </resource> 

     </resources> 
    </build> 

aber dann arbeitet mein asp Seiten gestoppt (i don‘ t wissen, warum), so dass ich denke, dass es eine Möglichkeit zu bekommen, ist, dass die Mittel aus dem src/main/resources ohne die pom

+0

Das sollte 'getClass() sein. GetResource ("/test.rq ")' - beachten Sie die '/' oder 'getClass(). GetClassLoader(). GetResource (" test.rq ")' –

Antwort

2

verwenden zu ändern:

InputStream testIn = getClass().getResourceAsStream("/test.rq"); 
String queryTemplate = IOUtils.toString(testIn); 

IOUtils.toString() scheint eine InputStream als Eingabe zu nehmen, also habe ich getResourceAsStream() verwendet.

Meine Schätzung bezüglich des Null-Zeigers ist, dass Sie auf das Stammverzeichnis Ihres Klassenpfads verweisen müssen, um auf die Ressourcendatei zuzugreifen, daher habe ich /test.rq verwendet, wobei der Schrägstrich root bedeutet.

+0

der InputStream von java.o bitte? –

+0

Ich weiß nicht, was Sie fragen, aber ja, Sie müssen einen 'InputStream' zu' IOUtils.toString() 'übergeben. –

+0

es funktioniert dank –

Verwandte Themen