我正在使用IBM Streams 4.1.1 我不能在我的Java运算符中使用Elasticsearch客户端,因为它具有传递依赖性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中。如何解决这个问题?
答案 0 :(得分:2)
我得到了asnwer: 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。