我对Scala,SBT和Play都是新手,所以请把它当作一个NooB查询。我正在为一个竞赛构建一个示例播放应用程序,并以反应性股票应用程序作为模板开始。为了扩展其功能,我需要添加安全性、JDBC连接等。
这是模板中提供的原始build.sbt文件-
scalaVersion := "2.11.1"
libraryDependencies ++= Seq(
ws, // Play's web services module
"com.typesafe.akka" %% "akka-actor" % "2.3.4",
"com.typesafe.akka" %% "akka-slf4j" % "2.3.4",
"org.webjars" % "bootstrap" % "2.3.1",
"org.webjars" % "flot" % "0.8.0",
"com.typesafe.akka" %% "akka-testkit" % "2.3.4" % "test"
)在此基础上,我将"com.typesafe.play“% "anorm_2.11”% "2.4.0-M1“添加到列表中,在slf4j依赖项之后,应用程序能够编译和运行。
现在,如果我添加"com.typesafe.play“%”过滤器-helpers_2.11“% "2.4.0-M1”或"com.typesafe.play“% " play -jdbc_2.11”% "2.4.0-M1",则play应用程序无法在Activator中编译带有消息"(echo:run) java.lang.ClassNotFoundException: play.core.server.NettyServer“。
Netty类肯定在类路径中。那又有什么问题呢?
我使用的是JDK 8。
scalaVersion := "2.11.1"
libraryDependencies ++= Seq(
ws, // Play's web services module
"com.typesafe.akka" %% "akka-actor" % "2.3.4",
"com.typesafe.akka" %% "akka-slf4j" % "2.3.4",
"org.webjars" % "bootstrap" % "2.3.1",
"org.webjars" % "flot" % "0.8.0",
"com.typesafe.akka" %% "akka-testkit" % "2.3.4" % "test",
"com.typesafe.play" % "anorm_2.11" % "2.4.0-M1",
"com.typesafe.play" % "filters-helpers_2.11" % "2.4.0-M1",
"com.typesafe.play" % "play-jdbc_2.11" % "2.4.0-M1"
)用原木
Reapplying settings...
Set current project to reactive-stocks (in build file:/D:/Miura/reactive-stocks/)
Reapplying settings...
Set current project to reactive-stocks (in build file:/D:/Miura/reactive-stocks/)
Reapplying settings...
Set current project to reactive-stocks (in build file:/D:/Miura/reactive-stocks/)
Reapplying settings...
Set current project to reactive-stocks (in build file:/D:/Miura/reactive-stocks/)
Running task... Cancel: sbt.TaskCancellationStrategy$Null$@571cf19b, check cycles: false
play.core.server.NettyServer
(echo:run) java.lang.ClassNotFoundException: play.core.server.NettyServer
Run complete.发布于 2014-10-27 06:03:31
正如在谷歌集团上回答的那样,问题在于混淆了Play库版本。股票模板为Play 2.3.3,但我试图添加的库为2.4。
此配置在build.sbt中工作
libraryDependencies ++= Seq(
jdbc,
anorm,
cache,
ws发布于 2015-06-18 23:31:18
我也犯了这个错误:
Exception in thread "main" java.lang.NoClassDefFoundError: play/core/server/NettyServer
Caused by: java.lang.ClassNotFoundException: play.core.server.NettyServer
at java.net.URLClassLoader$1.run(URLClassLoader.java:200)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:276)
at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319)但我的问题更愚蠢:许可。检查正在执行应用程序的用户是否具有正确的权限。
只是为了记录,所以其他人可以节省时间。
https://stackoverflow.com/questions/26424306
复制相似问题