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, как описано в документации.