2017-02-18 142 views
0

我正在開發使用IBM Watson對話的聊天機器人。當我構建項目並運行時,它在java-sdk /對話的RequestUtils.java類中的inputStream中爲空。但是當我從ide運行它的時候它就起作用了。無法找到version.properties文件

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

我注意到屬性文件不在jar裏面。如何在構建時將這個屬性文件添加到jar中?可能的原因是什麼?任何幫助表示讚賞。 謝謝。

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); 

現在它工作正常。