2017-02-18 18 views
0

私はIBM Watson会話を使用してチャットボットを開発しています。プロジェクトをビルドして実行すると、java-sdk/conversation内のRequestUtils.javaクラスのinputStreamにnullが返されます。しかし、私がideからそれを実行するとき、それは動作します。version.propertiesファイルが見つかりません

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

プロパティファイルがjarファイル内にないことに気付きました。このプロパティファイルをビルド時にjarファイルに追加するには?考えられる原因は何でしょうか?どんな助けもありがとうございます。おかげさまで

P.S:私は自分でそれを修正

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

次のようにクラスのscehemaがあります。 スレッドは、コンテキストクラスローダーを親スレッドから継承します。アプリケーション全体でまったく何もしないと、すべてのスレッドはシステムクラスローダーをコンテキストクラスローダーとして終了します。 したがって、contextClassLoaderを現在のスレッドに対して次のように設定します。

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

これで正常に動作します。

関連する問題