我正在使用java和play framewrok开发一个akka项目。
我想用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"
)
}
请有人帮忙解决这个问题。
答案 0 :(得分:2)
我假设您使用的是Play的最新稳定版本!
播放! framework 2.0.x随Akka 2.0.2 一起提供,但不包含Akka远程。 要添加它,只需使用:
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"
如果您使用2.1 Akka发布Play! 2.0.x系列也许你会得到一些冲突
答案 1 :(得分:1)
Akka已经附带Play框架:https://github.com/playframework/Play20/blob/master/framework/project/Build.scala#L280
但嵌入式版本不是最新版本(适用于Play 2.0.3的Akka 2.0.2)。
如果你添加最新的Akka版本,你可能会遇到一些lib冲突。
作为您的问题,您的dependendy版本(2.1-SNAPSHOT)在Typesafe releases
repo中不存在:http://repo.typesafe.com/typesafe/releases/com/typesafe/akka/akka-actor/
您必须使用Typesafe snapshots
存储库:
val main = PlayProject(appName, appVersion, appDependencies, mainLang = JAVA).settings(
resolvers += "Typesafe Releases" at "http://repo.typesafe.com/typesafe/snapshots"
)