我正在使用IBM Watson对话开发聊天机器人。当我构建项目并运行时,它会在java-sdk / conversation的inputStream
类的RequestUtils.java
中提供null。但是当我从观念上运行它时,它是有效的。
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
我自己修复了。线程将从其父线程继承其上下文类加载器。如果您在整个应用程序中什么也不做,那么所有线程都将以系统类装入器作为上下文类装入器。因此,我为当前线程自行设置contextClassLoader,如下所示。
ClassLoader classLoader = MyClass.class.getClassLoader();
Thread.currentThread().setContextClassLoader( classLoader );
现在可以正常工作。