【问题标题】:Exception caught in Netty in play frameworkNetty 在游戏框架中捕获的异常
【发布时间】:2017-03-09 09:04:18
【问题描述】:

我在 SCALA 中创建了一个新的播放框架应用程序。如果我运行应用程序,它会按预期运行,并且我可以打开 URL localhost:9000,但是在我创建了一个 lib 文件夹并添加了一些 jars(spark jars)之后,当我尝试使用命令 play run 运行应用程序时,它显示消息

[error] p.nettyException - Exception caught in Netty
java.lang.NoSuchMethodError: scala.collection.immutable.HashSet$.empty()Lscala/collection/immutable/HashSet;
        at akka.actor.ActorCell$.<init>(ActorCell.scala:305) ~[akka-actor_2.10.jar:2.2.0]
        at akka.actor.ActorCell$.<clinit>(ActorCell.scala) ~[akka-actor_2.10.jar:2.2.0]
        at akka.actor.RootActorPath.$div(ActorPath.scala:152) ~[akka-actor_2.10.jar:2.2.0]
        at akka.actor.LocalActorRefProvider.<init>(ActorRefProvider.scala:465) ~[akka-actor_2.10.jar:2.2.0]
        at akka.actor.LocalActorRefProvider.<init>(ActorRefProvider.scala:453) ~[akka-actor_2.10.jar:2.2.0]
        at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) ~[na:1.8.0_91]
[error] p.nettyException - Exception caught in Netty
java.lang.NoClassDefFoundError: Could not initialize class play.api.libs.concurrent.Execution$

当我尝试打开 URL localhost:9000 时,它显示“localhost page is not working”。

Spark 2.0 版 Scala 2.10 版,我也测试了 scala 2.11 和 2.12 相同的错误重现。

播放框架版本 - 2.2.6

【问题讨论】:

    标签: scala web-applications playframework


    【解决方案1】:

    首先,如果您创建了一个新 Play!项目,为什么要使用 2.2 版?最新的是 2.5,它可能已经解决了您的问题。

    其次,为了确保您没有任何其他版本冲突,我建议您使用托管依赖项,而不是手动将它们放入 lib 文件夹中。

    对于 Apache Spark,您可以将此行添加到您的 build.sbt 文件中:

    libraryDependencies += "org.apache.spark" %% "spark-core" % "2.1.0"
    

    如 Spark 的 Quick Start Guide 中所述。您需要在项目中使用 Scala 2.10 或 2.11(建议)。

    如果这不能解决您的问题,请发布您的 build.sbt 的内容和控制器代码。谢谢。

    【讨论】:

    • 谢谢!效果很好。刚刚升级到 Play 2.5。
    猜你喜欢
    • 1970-01-01
    • 2014-09-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-06-27
    • 2015-10-28
    • 2011-06-05
    • 1970-01-01
    相关资源
    最近更新 更多