Ibm Streams проблема загрузки классов оператора Java

Я использую IBM Streams 4.1.1. Я не могу использовать клиент Elasticsearch в своем операторе Java, потому что он имеет транзитивную зависимость guava-18.0 lib

 <groupId>org.elasticsearch</groupId>
 <artifactId>elasticsearch</artifactId>
 <version>2.3.2</version>

Когда я отправляю свою работу, я вижу NoSuchMethodError: com/google/common/util/concurrent/MoreExecutors.derectExecutor

Это происходит потому, что поток IBM имеет в ext/lib guava-14. Как решить эту проблему?

1 ответ

Решение

Я получил ответ: https://developer.ibm.com/answers/questions/332772/java-operator-classloader-issue.html

Это исправлено в IBM Streams 4.2.

Среда выполнения Streams теперь включает только документированные jar-файлы в загрузчике классов, доступные для оператора (в дополнение к любому, указанному оператором):

Operator API and samples
Apache Log4j
Apache Common Math
JSON4J

, Эта проблема была исправлена ​​в IBM Streams 4.2, поэтому путь к классу операторов, предоставляемый средой выполнения Streams, ограничен оператором apis, общей математикой Apache, JSON4J и Apache log4j, как описано в документации.

Другие вопросы по тегам