scala - NoClassDefFounderror json 4s

标签 scala playframework json4s

自从两天前我使用play框架以来,我在scala中遇到了NoClassDefFound错误,我想将我的对象作为json显示到客户端,我使用了json4s(需要这个lib),我在java中使用GSON ,代码在尝试执行时得到 NoClassDefFound

隐式 val 格式 = DefaultFormats

我添加了我的团队在另一个 5 个项目中使用的依赖项,但我坚持这样做, 这是依赖项

libraryDependencies += "org.json4s" % "json4s-native_2.10" % "3.3.0"
libraryDependencies += "org.json4s" % "json4s-jackson_2.10" % "3.3.0"

我搜索了整个谷歌,但没有找到解决方案 这是堆栈跟踪

play.api.http.HttpErrorHandlerExceptions$$anon$1: Execution exception[[RuntimeException: java.lang.NoClassDefFoundError: Could not initialize class org.json4s.DefaultFormats$]]
    at play.api.http.HttpErrorHandlerExceptions$.throwableToUsefulException(HttpErrorHandler.scala:255)
    at play.api.http.DefaultHttpErrorHandler.onServerError(HttpErrorHandler.scala:182)
    at play.core.server.AkkaHttpServer$$anonfun$$nestedInanonfun$executeHandler$1$1.applyOrElse(AkkaHttpServer.scala:251)
    at play.core.server.AkkaHttpServer$$anonfun$$nestedInanonfun$executeHandler$1$1.applyOrElse(AkkaHttpServer.scala:250)
    at scala.concurrent.Future.$anonfun$recoverWith$1(Future.scala:412)
    at scala.concurrent.impl.Promise.$anonfun$transformWith$1(Promise.scala:37)
    at scala.concurrent.impl.CallbackRunnable.run(Promise.scala:60)
    at play.api.libs.streams.Execution$trampoline$.execute(Execution.scala:70)
    at scala.concurrent.impl.CallbackRunnable.executeWithValue(Promise.scala:68)
    at scala.concurrent.impl.Promise$KeptPromise$Kept.onComplete(Promise.scala:368)
Caused by: java.lang.RuntimeException: java.lang.NoClassDefFoundError: Could not initialize class org.json4s.DefaultFormats$
    at play.api.mvc.ActionBuilder$$anon$2.apply(Action.scala:424)
    at play.api.mvc.Action.$anonfun$apply$2(Action.scala:96)
    at play.api.libs.streams.StrictAccumulator.$anonfun$mapFuture$4(Accumulator.scala:174)
    at scala.util.Try$.apply(Try.scala:209)
    at play.api.libs.streams.StrictAccumulator.$anonfun$mapFuture$3(Accumulator.scala:174)
    at scala.Function1.$anonfun$andThen$1(Function1.scala:52)
    at scala.Function1.$anonfun$andThen$1(Function1.scala:52)
    at scala.Function1.$anonfun$andThen$1(Function1.scala:52)
    at scala.Function1.$anonfun$andThen$1(Function1.scala:52)
    at play.api.libs.streams.StrictAccumulator.run(Accumulator.scala:207)
Caused by: java.lang.NoClassDefFoundError: Could not initialize class org.json4s.DefaultFormats$
    at core.controllers.HelthyCheck.$anonfun$helthyCheck$1(HelthyCheck.scala:33)
    at play.api.mvc.ActionBuilder.$anonfun$apply$11(Action.scala:363)
    at scala.Function1.$anonfun$andThen$1(Function1.scala:52)
    at play.api.mvc.ActionBuilderImpl.invokeBlock(Action.scala:482)
    at play.api.mvc.ActionBuilderImpl.invokeBlock(Action.scala:480)
    at play.api.mvc.ActionBuilder$$anon$9.invokeBlock(Action.scala:331)
    at play.api.mvc.ActionBuilder$$anon$9.invokeBlock(Action.scala:326)
    at play.api.mvc.ActionBuilder$$anon$2.apply(Action.scala:419)
    at play.api.mvc.Action.$anonfun$apply$2(Action.scala:96)
    at play.api.libs.streams.StrictAccumulator.$anonfun$mapFuture$4(Accumulator.scala:174)

最佳答案

只需将 sbt 中的 scala 版本从 2.12.3 更改为 2.11.7 即可正常工作..

关于scala - NoClassDefFounderror json 4s,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47138917/

相关文章:

json - 无法使用 json4s 正确提取 json

scala - 当缺少必填字段时,是否可以使 json4s 不抛出异常?

scala - 使用 elasticsearch-hadoop 的 Spark sbt "Conflicting cross-version suffixes"错误

java - 无法使用 Java SocketFactory 库连接到 Cloud SQL

scala - 从 Spark 中的单词中删除特殊字符 - scala

playframework - 路由到Play中的静态文件! 2.0

mysql - Play Framework 2.5 - 不使用内存数据库进行测试

scala - 高效的 Scala 惯用方法来选择前 85% 的排序值?

json - Play Json 添加类中不存在的字段

java - 使用Scala获取底层的JSON数据