IBM 流 Java 运算符类加载问题

Ibm streams Java operator classloading issue

我正在使用 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 中。如何解决这个问题?

我得到了答案: https://developer.ibm.com/answers/questions/332772/java-operator-classloader-issue.html

这已在 IBM Streams 4.2 中修复。

Streams 运行时现在仅包含操作员可用的 classloader 中记录的 jar(除了操作员指定的任何内容):

Operator API and samples
Apache Log4j
Apache Common Math
JSON4J

,此问题已在 IBM Streams 4.2 中修复,因此 Streams 运行时提供的运算符 class 路径仅限于运算符 api、Apache 通用数学、JSON4J 和 Apache log4j,如文档所述。