Java Play Framework - NoClassDefFoundError: play/Configuration
Java Play Framework - NoClassDefFoundError: play/Configuration
我刚刚开始使用 Java Play Framework 并向前迈出了一些步子,但现在我打算添加 JavaEbean OEM,我浏览了文档但仍然得到了错误 NoClassDefFoundError: play/Configuration
application.conf
# This is the main configuration file for the application.
# https://www.playframework.com/documentation/latest/ConfigFile
ebean.default = ["models.*"]
plugins.sbt
addSbtPlugin("com.typesafe.play" % "sbt-plugin" % "2.7.0")
addSbtPlugin("com.typesafe.sbt" % "sbt-play-ebean" % "4.1.0")
我的模特:
import io.ebean.Model;
public class Book extends Model {..}
build.sbt
name := """BookStoreApp"""
organization := "com.example"
version := "1.0-SNAPSHOT"
lazy val root = (project in file(".")).enablePlugins(PlayJava, PlayEbean)
scalaVersion := "2.12.8"
libraryDependencies += guice
我从 sbt 开始,更新后一切正常,但如果我编译,我会收到以下错误:
[error] java.lang.NoClassDefFoundError: play/Configuration
[error] at play.db.ebean.ModelsConfigLoader.apply(ModelsConfigLoader.java:27)
[error] at play.db.ebean.ModelsConfigLoader.apply(ModelsConfigLoader.java:21)
[error] at play.ebean.sbt.PlayEbean$.$anonfun$configuredEbeanModels(PlayEbean.scala:153)
[error] at play.ebean.sbt.PlayEbean$.withClassLoader(PlayEbean.scala:130)
[error] at play.ebean.sbt.PlayEbean$.$anonfun$configuredEbeanModels(PlayEbean.scala:150)
[error] at scala.Function1.$anonfun$compose(Function1.scala:44)
[error] at sbt.internal.util.$tilde$greater.$anonfun$$u2219(TypeFunctions.scala:40)
[error] at sbt.std.Transform$$anon.work(System.scala:67)
[error] at sbt.Execute.$anonfun$submit(Execute.scala:269)
[error] at sbt.internal.util.ErrorHandling$.wideConvert(ErrorHandling.scala:16)
[error] at sbt.Execute.work(Execute.scala:278)
[error] at sbt.Execute.$anonfun$submit(Execute.scala:269)
[error] at sbt.ConcurrentRestrictions$$anon.$anonfun$submitValid(ConcurrentRestrictions.scala:178)
[error] at sbt.CompletionService$$anon.call(CompletionService.scala:37)
[error] at java.util.concurrent.FutureTask.run(Unknown Source)
[error] at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source)
[error] at java.util.concurrent.FutureTask.run(Unknown Source)
[error] at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
[error] at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
[error] at java.lang.Thread.run(Unknown Source)
[error] Caused by: java.lang.ClassNotFoundException: play.Configuration
[error] at java.net.URLClassLoader.findClass(Unknown Source)
[error] at java.lang.ClassLoader.loadClass(Unknown Source)
[error] at java.lang.ClassLoader.loadClass(Unknown Source)
[error] at play.db.ebean.ModelsConfigLoader.apply(ModelsConfigLoader.java:27)
[error] at play.db.ebean.ModelsConfigLoader.apply(ModelsConfigLoader.java:21)
[error] at play.ebean.sbt.PlayEbean$.$anonfun$configuredEbeanModels(PlayEbean.scala:153)
[error] at play.ebean.sbt.PlayEbean$.withClassLoader(PlayEbean.scala:130)
[error] at play.ebean.sbt.PlayEbean$.$anonfun$configuredEbeanModels(PlayEbean.scala:150)
[error] at scala.Function1.$anonfun$compose(Function1.scala:44)
[error] at sbt.internal.util.$tilde$greater.$anonfun$$u2219(TypeFunctions.scala:40)
[error] at sbt.std.Transform$$anon.work(System.scala:67)
[error] at sbt.Execute.$anonfun$submit(Execute.scala:269)
[error] at sbt.internal.util.ErrorHandling$.wideConvert(ErrorHandling.scala:16)
[error] at sbt.Execute.work(Execute.scala:278)
[error] at sbt.Execute.$anonfun$submit(Execute.scala:269)
[error] at sbt.ConcurrentRestrictions$$anon.$anonfun$submitValid(ConcurrentRestrictions.scala:178)
[error] at sbt.CompletionService$$anon.call(CompletionService.scala:37)
[error] at java.util.concurrent.FutureTask.run(Unknown Source)
[error] at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source)
[error] at java.util.concurrent.FutureTask.run(Unknown Source)
[error] at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
[error] at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
[error] at java.lang.Thread.run(Unknown Source)
[error] (Compile / playEbeanModels) java.lang.NoClassDefFoundError: play/Configuration
[error] Total time: 7 s, completed 22.02.2019 10:07:26
if i 运行 sbt 运行 我得到与上面相同的错误,加上:
[error] a.a.ActorSystemImpl - Internal server error, sending 500 response
akka.http.impl.util.One2OneBidiFlow$OutputTruncationException: Inner flow was completed without producing result elements for 1 outstanding elements
at akka.http.impl.util.One2OneBidiFlow$OutputTruncationException$.apply(One2OneBidiFlow.scala:22)
at akka.http.impl.util.One2OneBidiFlow$OutputTruncationException$.apply(One2OneBidiFlow.scala:22)
at akka.http.impl.util.One2OneBidiFlow$One2OneBidi$$anon$$anon.onUpstreamFinish(One2OneBidiFlow.scala:97)
at akka.stream.impl.fusing.GraphInterpreter.processEvent(GraphInterpreter.scala:504)
at akka.stream.impl.fusing.GraphInterpreter.execute(GraphInterpreter.scala:378)
at akka.stream.impl.fusing.GraphInterpreterShell.runBatch(ActorGraphInterpreter.scala:588)
at akka.stream.impl.fusing.GraphInterpreterShell$AsyncInput.execute(ActorGraphInterpreter.scala:472)
at akka.stream.impl.fusing.GraphInterpreterShell.processEvent(ActorGraphInterpreter.scala:563)
at akka.stream.impl.fusing.ActorGraphInterpreter.akka$stream$impl$fusing$ActorGraphInterpreter$$processEvent(ActorGraphInterpreter.scala:745)
at akka.stream.impl.fusing.ActorGraphInterpreter$$anonfun$receive.applyOrElse(ActorGraphInterpreter.scala:760)
[error] (Compile / playEbeanModels) java.lang.NoClassDefFoundError: play/Configuration
您需要更改 play
或 ebean
版本。
play
在2.7中更改了默认的Configuration
class:https://www.playframework.com/documentation/2.7.x/JavaConfigMigration26.
ebean
插件版本与play
对应:
https://github.com/playframework/play-ebean#releases
那么下一个
addSbtPlugin("com.typesafe.play" % "sbt-plugin" % "2.7.0")
addSbtPlugin("com.typesafe.sbt" % "sbt-play-ebean" % "4.1.0")
必须改为
addSbtPlugin("com.typesafe.play" % "sbt-plugin" % "2.6.21")
addSbtPlugin("com.typesafe.sbt" % "sbt-play-ebean" % "4.1.0")
或
addSbtPlugin("com.typesafe.play" % "sbt-plugin" % "2.7.0")
addSbtPlugin("com.typesafe.sbt" % "sbt-play-ebean" % "5.0.0")
我刚刚开始使用 Java Play Framework 并向前迈出了一些步子,但现在我打算添加 JavaEbean OEM,我浏览了文档但仍然得到了错误 NoClassDefFoundError: play/Configuration
application.conf
# This is the main configuration file for the application.
# https://www.playframework.com/documentation/latest/ConfigFile
ebean.default = ["models.*"]
plugins.sbt
addSbtPlugin("com.typesafe.play" % "sbt-plugin" % "2.7.0")
addSbtPlugin("com.typesafe.sbt" % "sbt-play-ebean" % "4.1.0")
我的模特:
import io.ebean.Model;
public class Book extends Model {..}
build.sbt
name := """BookStoreApp"""
organization := "com.example"
version := "1.0-SNAPSHOT"
lazy val root = (project in file(".")).enablePlugins(PlayJava, PlayEbean)
scalaVersion := "2.12.8"
libraryDependencies += guice
我从 sbt 开始,更新后一切正常,但如果我编译,我会收到以下错误:
[error] java.lang.NoClassDefFoundError: play/Configuration
[error] at play.db.ebean.ModelsConfigLoader.apply(ModelsConfigLoader.java:27)
[error] at play.db.ebean.ModelsConfigLoader.apply(ModelsConfigLoader.java:21)
[error] at play.ebean.sbt.PlayEbean$.$anonfun$configuredEbeanModels(PlayEbean.scala:153)
[error] at play.ebean.sbt.PlayEbean$.withClassLoader(PlayEbean.scala:130)
[error] at play.ebean.sbt.PlayEbean$.$anonfun$configuredEbeanModels(PlayEbean.scala:150)
[error] at scala.Function1.$anonfun$compose(Function1.scala:44)
[error] at sbt.internal.util.$tilde$greater.$anonfun$$u2219(TypeFunctions.scala:40)
[error] at sbt.std.Transform$$anon.work(System.scala:67)
[error] at sbt.Execute.$anonfun$submit(Execute.scala:269)
[error] at sbt.internal.util.ErrorHandling$.wideConvert(ErrorHandling.scala:16)
[error] at sbt.Execute.work(Execute.scala:278)
[error] at sbt.Execute.$anonfun$submit(Execute.scala:269)
[error] at sbt.ConcurrentRestrictions$$anon.$anonfun$submitValid(ConcurrentRestrictions.scala:178)
[error] at sbt.CompletionService$$anon.call(CompletionService.scala:37)
[error] at java.util.concurrent.FutureTask.run(Unknown Source)
[error] at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source)
[error] at java.util.concurrent.FutureTask.run(Unknown Source)
[error] at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
[error] at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
[error] at java.lang.Thread.run(Unknown Source)
[error] Caused by: java.lang.ClassNotFoundException: play.Configuration
[error] at java.net.URLClassLoader.findClass(Unknown Source)
[error] at java.lang.ClassLoader.loadClass(Unknown Source)
[error] at java.lang.ClassLoader.loadClass(Unknown Source)
[error] at play.db.ebean.ModelsConfigLoader.apply(ModelsConfigLoader.java:27)
[error] at play.db.ebean.ModelsConfigLoader.apply(ModelsConfigLoader.java:21)
[error] at play.ebean.sbt.PlayEbean$.$anonfun$configuredEbeanModels(PlayEbean.scala:153)
[error] at play.ebean.sbt.PlayEbean$.withClassLoader(PlayEbean.scala:130)
[error] at play.ebean.sbt.PlayEbean$.$anonfun$configuredEbeanModels(PlayEbean.scala:150)
[error] at scala.Function1.$anonfun$compose(Function1.scala:44)
[error] at sbt.internal.util.$tilde$greater.$anonfun$$u2219(TypeFunctions.scala:40)
[error] at sbt.std.Transform$$anon.work(System.scala:67)
[error] at sbt.Execute.$anonfun$submit(Execute.scala:269)
[error] at sbt.internal.util.ErrorHandling$.wideConvert(ErrorHandling.scala:16)
[error] at sbt.Execute.work(Execute.scala:278)
[error] at sbt.Execute.$anonfun$submit(Execute.scala:269)
[error] at sbt.ConcurrentRestrictions$$anon.$anonfun$submitValid(ConcurrentRestrictions.scala:178)
[error] at sbt.CompletionService$$anon.call(CompletionService.scala:37)
[error] at java.util.concurrent.FutureTask.run(Unknown Source)
[error] at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source)
[error] at java.util.concurrent.FutureTask.run(Unknown Source)
[error] at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
[error] at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
[error] at java.lang.Thread.run(Unknown Source)
[error] (Compile / playEbeanModels) java.lang.NoClassDefFoundError: play/Configuration
[error] Total time: 7 s, completed 22.02.2019 10:07:26
if i 运行 sbt 运行 我得到与上面相同的错误,加上:
[error] a.a.ActorSystemImpl - Internal server error, sending 500 response
akka.http.impl.util.One2OneBidiFlow$OutputTruncationException: Inner flow was completed without producing result elements for 1 outstanding elements
at akka.http.impl.util.One2OneBidiFlow$OutputTruncationException$.apply(One2OneBidiFlow.scala:22)
at akka.http.impl.util.One2OneBidiFlow$OutputTruncationException$.apply(One2OneBidiFlow.scala:22)
at akka.http.impl.util.One2OneBidiFlow$One2OneBidi$$anon$$anon.onUpstreamFinish(One2OneBidiFlow.scala:97)
at akka.stream.impl.fusing.GraphInterpreter.processEvent(GraphInterpreter.scala:504)
at akka.stream.impl.fusing.GraphInterpreter.execute(GraphInterpreter.scala:378)
at akka.stream.impl.fusing.GraphInterpreterShell.runBatch(ActorGraphInterpreter.scala:588)
at akka.stream.impl.fusing.GraphInterpreterShell$AsyncInput.execute(ActorGraphInterpreter.scala:472)
at akka.stream.impl.fusing.GraphInterpreterShell.processEvent(ActorGraphInterpreter.scala:563)
at akka.stream.impl.fusing.ActorGraphInterpreter.akka$stream$impl$fusing$ActorGraphInterpreter$$processEvent(ActorGraphInterpreter.scala:745)
at akka.stream.impl.fusing.ActorGraphInterpreter$$anonfun$receive.applyOrElse(ActorGraphInterpreter.scala:760)
[error] (Compile / playEbeanModels) java.lang.NoClassDefFoundError: play/Configuration
您需要更改 play
或 ebean
版本。
play
在2.7中更改了默认的Configuration
class:https://www.playframework.com/documentation/2.7.x/JavaConfigMigration26.
ebean
插件版本与play
对应:
https://github.com/playframework/play-ebean#releases
那么下一个
addSbtPlugin("com.typesafe.play" % "sbt-plugin" % "2.7.0")
addSbtPlugin("com.typesafe.sbt" % "sbt-play-ebean" % "4.1.0")
必须改为
addSbtPlugin("com.typesafe.play" % "sbt-plugin" % "2.6.21")
addSbtPlugin("com.typesafe.sbt" % "sbt-play-ebean" % "4.1.0")
或
addSbtPlugin("com.typesafe.play" % "sbt-plugin" % "2.7.0")
addSbtPlugin("com.typesafe.sbt" % "sbt-play-ebean" % "5.0.0")