2016-11-21 4 views
0

최근에 우리는 elastic 5.0으로 업그레이드했습니다. Elastic 5.0의 Java 클라이언트는 log4j 2.6에 대한 의존성이 매우 큽니다. 스톰 서버 (버전 1.0.2)는 이전 버전 인 log4J를 사용하며 모두 유선 종속성을가집니다. 다음은 서버에 배포하려고 할 때 발생하는 오류이며 'PreBuiltTransportClient'를 인스턴스화 할 수 없다는 것을 알 수 있습니다.log4j 종속성으로 인해 Storm 서버에서 실행중인 Elastic 5.0 클라이언트 문제

java.lang.NoSuchMethodError : org.apache.logging.log4j.Logger.info (Ljava/랭/문자열; Ljava은/랭/개체) V는

나는 탄성과 함께 문제를 제기하고 자신이 갖고 이 문제를 인정하고 더 적은 의존성을 가진 진정한 클라이언트에서 일하고 있다고 언급했습니다.

시간을두고이 문제를 해결할 수있는 대안이나 제안 사항이 있으십니까?

답변

0

해결책을 찾았으며 현재 작동 중입니다. 내가 한 일은 다음과 같습니다.

  1. 폭풍은/lib에있는 지정된 폴더의 python 스크립트를 사용하여 log4j 파일을로드합니다. 폭풍의 최신 버전은 log4j 2.1을 사용합니다.
  2. 해당 폴더에 log4j 2.6.2 파일을 복사했습니다.
  3. 이제 내 toplogy를 배포했을 때 storm은 CLASSPATH에서 log4j2.6.2를 사용하기 시작했습니다.
  4. 탄성 클라이언트가 필요로하는 것을 얻었고 작동하기 시작했습니다.

가벼운 무게의 Elastic Client가 출시 될 때까지이 해결 방법을 계속 사용합니다.