2016-03-21 21 views
1

Dinamik bir web projesindeyim ve bir kaynak dosya yüklemek istiyorum. web app java yük kaynağını bir dosyadan

yaptım bu:

test.rq src/main/resources var
String queryTemplate = IOUtils.toString(this.getClass().getResource(
       "test.rq")); 

, ama o hat üzerinde null işaretçi var.

Ben onu src/main/resources maven ana (varsayılan) kaynak klasör değil, bu yüzden ben yok (

<build> 

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

     </resources> 
    </build> 

ama sonra benim asp sayfaları çalışmayı durdurdu pom bu koymak düşündüm neden t) biliyorum, bu yüzden almak için bir yol olduğunu düşünüyorum pom

+0

Bu getClass() olmalıdır. GetResource ("/ test.rq") '-'/'veya' getClass() öğelerine dikkat edin. GetClassLoader(). GetResource ("test.rq") ' –

cevap

2

kullanın değiştirmeden src/main/resources kaynakların bu:

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

IOUtils.toString(), bir InputStream giriş olarak görünüyor, bu yüzden getResourceAsStream() kullanıyorum.

Null işaretçisine ilişkin tahminim, kaynak dosyaya erişmek için sınıf yolunuzun köküne başvurmanız gerektiğidir, dolayısıyla eğimin kök anlamına geldiği /test.rq kullanılır.

+0

inputStream java.o lütfen? –

+0

Ne soruyorsun bilmiyorum, ama evet bir 'InputStream'' IOUtils.toString() 'için geçmeniz gerekir. –

+0

çalışıyor –

İlgili konular