首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Elastic4S -杰克逊的类ScalaObjectMapper找不到并抛出一个NoSuchMethodError

Elastic4S -杰克逊的类ScalaObjectMapper找不到并抛出一个NoSuchMethodError
EN

Stack Overflow用户
提问于 2019-11-15 15:30:49
回答 1查看 1.2K关注 0票数 2

在Scala项目中使用Elastic4S时,我遇到了问题。引发以下错误:

com.fasterxml.jackson.module.scala.experimental.ScalaObjectMapper.$init$(Lcom/fasterxml/jackson/module/scala/experimental/ScalaObjectMapper;)V:

java.lang.NoSuchMethodError

其次是:

java.lang.NoClassDefFoundError:无法初始化类com.sksamuel.elastic4s.json.JacksonSupport$

下面是所使用的依赖关系:

代码语言:javascript
复制
  "com.sksamuel.elastic4s"       %% "elastic4s-core"              % "6.7.3",
  "com.sksamuel.elastic4s"       %% "elastic4s-http"              % "6.7.3",
  "com.github.swagger-akka-http" %% "swagger-akka-http"           % "2.0.4",
  "com.github.swagger-akka-http" %% "swagger-scala-module"        % "2.0.5",
  ...
  ),
  assemblyMergeStrategy in assembly := { _ => MergeStrategy.first }

从Elastic4s启动的唯一代码是在以下方法中:

代码语言:javascript
复制
  def testClusterUp(log: LoggingAdapter): Unit = {
    val response: Response[NodeInfoResponse] = client.execute(
      nodeInfo()
    ).await

    if (response.isError) {
      log.error(s"[ERROR]-[ELASTICSEARCH] $response")
      throw new ExceptionInInitializerError(s"an error occurred during Elastic connector initialization : ${response.error}")
    } else if (response.isSuccess) {
      log.info("Cluster started successfully !")
    }
  }

如能提供任何帮助,将不胜感激。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-11-18 11:05:30

似乎还有一些其他的依赖项正在覆盖这个依赖项。例如,swagger-akka-http使用了杰克逊-scala模块的另一个版本,并且不能在不对build.sbt进行一些调整的情况下将其包括在内。在这种情况下,应该采用以下配置:

代码语言:javascript
复制
("com.github.swagger-akka-http" %% "swagger-akka-http"    % "2.0.4") excludeAll(ExclusionRule(organization = "com.fasterxml.jackson.module")),
("com.github.swagger-akka-http" %% "swagger-scala-module" % "2.0.5") excludeAll(ExclusionRule(organization = "com.fasterxml.jackson.module")),

请参阅有关sbt依赖项的排除规则的更多信息:https://www.scala-sbt.org/release/docs/Library-Management.html#Exclude+Transitive+Dependencies

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58880146

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档