首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >java.lang.ClassNotFoundException: play.core.server.NettyServer当更多的播放库被添加到build.sbt中时

java.lang.ClassNotFoundException: play.core.server.NettyServer当更多的播放库被添加到build.sbt中时
EN

Stack Overflow用户
提问于 2014-10-17 11:44:22
回答 2查看 3K关注 0票数 4

我对Scala,SBT和Play都是新手,所以请把它当作一个NooB查询。我正在为一个竞赛构建一个示例播放应用程序,并以反应性股票应用程序作为模板开始。为了扩展其功能,我需要添加安全性、JDBC连接等。

这是模板中提供的原始build.sbt文件-

代码语言:javascript
复制
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。

代码语言:javascript
复制
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"
)

用原木

代码语言:javascript
复制
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.
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-10-27 06:03:31

正如在谷歌集团上回答的那样,问题在于混淆了Play库版本。股票模板为Play 2.3.3,但我试图添加的库为2.4。

此配置在build.sbt中工作

代码语言:javascript
复制
    libraryDependencies ++= Seq(
     jdbc,
     anorm,
     cache,
     ws
票数 2
EN

Stack Overflow用户

发布于 2015-06-18 23:31:18

我也犯了这个错误:

代码语言:javascript
复制
 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)

但我的问题更愚蠢:许可。检查正在执行应用程序的用户是否具有正确的权限。

只是为了记录,所以其他人可以节省时间。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26424306

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档