2017-02-18 4 views
0

IBM 왓슨 대화를 사용하여 채팅 봇을 개발 중입니다. 프로젝트를 빌드하고 실행하면 java-sdk/대화의 RequestUtils.java 클래스에있는 inputStream에 null이 제공됩니다. 하지만 ide에서 실행하면 작동합니다.version.properties 파일을 찾을 수 없습니다.

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

속성 파일이 jar 파일에없는 것으로 나타났습니다. 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); 

이제 제대로 작동합니다.

관련 문제