无法在 Elasticsearch 5.6.16 上初始化类 org.elasticsearch.painless.WriterConstants 并且依赖于 jayway

问题描述

我有 5.6.16 版的 Elasticsearch。我在项目中添加一个 jayway 2.5.0 作为依赖项,然后出现了 Elasticsearch 错误

NoClassDefFoundError Could not initialize class org.elasticsearch.painless.WriterConstants

我试图找到不兼容的 jayway 版本或 jayway 与 Elasticsearch 一起使用的东西,但结果是肯定的。

知道如何解决吗?

解决方法

这是因为与 Elasticsearch 中 Painless 编译器使用的 asm 冲突(asm:asm-debug-all)。为了让 Elasticsearch 也能工作,需要排除 et.minidev:accessors-smart。没有访问器-smart jayway 几乎不起作用。