0

我正在用 java 做一个 akka 项目并玩 framewrok。

我想用akka远程集群构建一个集群系统。

但是在将依赖项添加到 build.scala 文件之后

我收到以下错误。

[info] Done updating.
[error] java.lang.NoClassDefFoundError: akka/util/FiniteDuration 

这是 build.scala 文件中的代码

object ApplicationBuild extends Build {

    val appName         = "akka-remote"
    val appVersion      = "1.0-SNAPSHOT"


    val appDependencies = Seq(
      "com.typesafe.akka" % "akka-actor" % "2.1-SNAPSHOT" ,
          "com.typesafe.akka" % "akka-remote" % "2.1-SNAPSHOT" ,
         "com.typesafe.akka" % "akka-kernel" % "2.1-SNAPSHOT"
    )

    val main = PlayProject(appName, appVersion, appDependencies, mainLang = JAVA).settings(
      // Add your own project settings here 
        resolvers += "Typesafe Releases" at "http://repo.typesafe.com/typesafe/releases"
    )

}

任何人都可以帮助解决这个问题。

4

2 回答 2

2

我假设您使用的是最新的稳定版 Play!

玩!framework 2.0.x 随 Akka 2.0.2 提供,但不随 Akka remote 提供。要添加它,只需使用:

val appDependencies = Seq(
      "com.typesafe.akka" % "akka-actor" % "2.0.2" ,
      "com.typesafe.akka" % "akka-remote" % "2.0.2" ,
      "com.typesafe.akka" % "akka-kernel" % "2.0.2"
)

如果您需要日志记录功能,您还可以添加

 "com.typesafe.akka" % "akka-slf4j" % "2.0.2"

如果您在 Play 中使用 2.1 Akka 版本!2.0.x serie 也许你会遇到一些冲突

于 2012-09-20T09:12:13.310 回答
1

Akka 已经附带 Play 框架:https ://github.com/playframework/Play20/blob/master/framework/project/Build.scala#L280

但是嵌入式版本不是最新的(Akka 2.0.2 for Play 2.0.3)。

如果您添加最新的 Akka 版本,您可能会遇到一些 lib 冲突。

作为您的问题,Typesafe 存储库中不存在您的依赖版本(2.1-SNAPSHOT)releaseshttp ://repo.typesafe.com/typesafe/releases/com/typesafe/akka/akka-actor/

您必须使用 Typesafesnapshots存储库:

val main = PlayProject(appName, appVersion, appDependencies, mainLang = JAVA).settings(
    resolvers += "Typesafe Releases" at "http://repo.typesafe.com/typesafe/snapshots"
)
于 2012-09-20T06:29:26.807 回答