2017-02-18 3 views
0

Я разрабатываю чат-бот, используя разговор IBM Watson. Когда я создаю проект и запускаю его, он дает null в inputStream в классе RequestUtils.java в java-sdk/talk. но когда я запускаю его из идеала, он работает.Файл version.properties не найден

InputStream inputStream = Thread.currentThread().getContextClassLoader().getResourceAsStream("version.properties"); 

Я заметил, что файл свойств не находится внутри банки. Как добавить этот файл свойств в банку при его создании? Что может быть причиной? Любая помощь приветствуется. Спасибо.

P.S: scehema классов являются

parent 
project1 
project2 
Maven Dependencies 
|-conversation-3.5.3.jar 
| |-package1 
| |-packeage2 
| |-META-INF 
|-core-3.5.3.jar 
    |-package1 
    |-packeage2 
    | |-RequestUtils.class 
    |-META-INF 
    |-version.properties 
+0

Можете ли вы предоставить схему ваших классов и файл 'version.properties' в вашем проекте? – STaefi

+0

@ Dimuth-Ruwantha вы можете открыть проблему в репозитории? https://github.com/watson-developer-cloud/java-sdk Я могу поработать над этим и обновить его после его работы –

+0

@German Attanasio благодарю вас за быстрый ответ. Я открыл проблему в следующей ссылке https://github.com/watson-developer-cloud/java-sdk/issues/586 –

ответ

1

Я установил его самостоятельно. поток наследует свой контекстный загрузчик классов от родительского потока. Если вы вообще ничего не делаете во всем приложении, все потоки получат системный загрузчик классов в качестве своего загрузчика классов. Поэтому я устанавливаю contextClassLoader самостоятельно для текущего потока следующим образом.

ClassLoader classLoader = MyClass.class.getClassLoader(); 
Thread.currentThread().setContextClassLoader(classLoader); 

сейчас он отлично работает.