2014-01-08 4 views
0

Im пытается прочитать файл с пути. Это мой пример кода;Входной поток имеет значение null, при загрузке файла из пути к файлу в службе Windows

String path = "repository"+ File.separator +"resources"+ File.separator +"api_templates"; 

     String fileName = path + TEMPLATE_FILE_PREFIX + type + ".xml"; 
     InputStream in = null; 
     try { 
      log.info("##############File path#############"+fileName); 
      in = Thread.currentThread().getContextClassLoader().getResourceAsStream(fileName); 

Здесь я получаю входной поток как null. Я подозреваю, что система не могла загрузить файл. Но когда я печатаю свой путь к файлу, он правильно печатает мой путь к файлу.

Эта проблема возникает только при попытке запустить мой сервер в качестве службы Windows, используя «yajsw».

В чем может быть проблема?

Edit:

Мой Пример файла обертка-конф;

#******************************************************************** 
# working directory 
#******************************************************************** 

wrapper.working.dir = $ {} my_home

............ 

wrapper.java.additional.2 = -Xms256m 
wrapper.java.additional.3 = -Xmx1024m 
wrapper.java.additional.4 = -XX:MaxPermSize=256m 
wrapper.java.additional.5 = -XX:+HeapDumpOnOutOfMemoryError 
wrapper.java.additional.6 = -XX:HeapDumpPath=${my_home}\\repository\\logs\\heap-dump.hprof 
wrapper.java.additional.7 = -Djava.endorsed.dirs=${my_home}\\lib\\endorsed;${java_home}\\jre\\lib\\endorsed 
+0

Это может помочь вам: http://stackoverflow.com/questions/1464291/how-to-really-read-text-file-from-classpath-in-java – Muthu

+0

@Muthu Спасибо, но те, предложение сделал не работает для меня. Я всегда передаю «абсолютный» путь в моем коде. (Пожалуйста, проверьте мой сегмент кода выше). Когда я запускаю это как обычное Java-приложение, выше работает отлично. Проблема только в том, что когда я запускаю службу Windows, она не может загрузить файл? Должен ли я установить какой-либо параметр в файле wrapper.con? Я установил параметр work.directory и пути classpaths правильно. Итак, мое приложение запускается как служба Windows успешно, но когда я пытаюсь лазировать файлы, система не может. Любая подсказка? – Ratha

ответ

1

Это из-за проблем между ресурсами пути к классам и файлам. Мы не можем использовать загрузчики классов для доступа к файлам. Для этого нам нужно использовать File, filereader, поток ввода файлов. После такого изменения все работает нормально;

InputStream in = new FileInputStream (filePath);

 Смежные вопросы

  • Нет связанных вопросов^_^