2016-11-21 1 views
0

Недавно мы обновили до эластичного 5.0. Клиент java в Elastic 5.0 имеет жесткую зависимость от log4j 2.6. С другой стороны, сервер Storm (версия 1.0.2) использует более старую версию log4J, и обе они связаны с жесткой связью. Ниже приведена ошибка, которую мы получаем при попытке развертывания на сервере, и я вижу, что «PreBuiltTransportClient» не может создать экземпляр.Проблема с клиентом Elastic 5.0 работает на сервере Storm из-за зависимости log4j

java.lang.NoSuchMethodError: org.apache.logging.log4j.Logger.info (Ljava/языки/Строка; Ljava/языки/объект;) V

Я поднял вопрос с упругим и у них есть подтвердили эту проблему и упоминали, что они работают над истинным клиентом, который имеет меньшие зависимости.

Любые обходные пути или предложения, чтобы обойти это на время?

ответ

0

Я нашел решение для этого и сейчас работает. Вот что я сделал,

  1. Storm загружает файлы log4j с использованием скрипта python из указанной папки в/lib. Последняя версия шторма использует log4j 2.1
  2. Я скопировал файлы log4j 2.6.2 в эту папку.
  3. Теперь, когда я развернул свою тополию, шторм начал использовать log4j2.6.2 в CLASSPATH.
  4. Упругий клиент получил то, что ему нужно, и он начал работать.

Пока не выпущен легкий эластичный клиент, мы продолжим использовать это обходное решение.