我有一个Play 2.4.6应用程序,直到两天前都运行良好。从昨天开始,我收到此错误:
[[37minfo] - application - Creating Pool for datasource 'default'
[[31merror] - com.avaje.ebeaninternal.server.deploy.BeanDescriptorManager - Error in deployment
java.lang.IllegalStateException: Bean class models.User is not enhanced?
at com.avaje.ebeaninternal.server.deploy.BeanDescriptorManager.setEntityBeanClass(BeanDescriptorManager.java:1405) ~[avaje-ebeanorm-6.8.1.jar:na]
我已经在寻找解决方案,但仍然遇到该错误。甚至,我尝试使用插件2.0
addSbtPlugin("com.typesafe.sbt" % "sbt-play-ebean" % "2.0.0")
我该如何解决?
提前谢谢您,
更新:最后,我重写了代码,删除了EBean,并开始使用Play Framework的数据库池和JDBC的PreparedStatement
。工作良好。我将在这里留下这个问题,希望对其他人有所帮助。
检查以下内容:
ebean.default=["models.*"]
addSbtPlugin("com.typesafe.sbt" % "sbt-play-enhancer" % "1.1.0")
在您的plugin.sbt文件中。lazy val root = (project in file(".")).enablePlugins(PlayJava, PlayEbean)
如果您想使用ebean再试一次,这对我来说就有用了
如果您tried all of the given solutions
和couldn't
解决了问题,请检查项目的JDK版本。
Java11存在某种问题。 尝试Java8或更低版本。
取决于所使用的播放框架的版本,可能需要更改
ebean.default= ["models.*", "another.models.*"]
到
ebean.default="models.*, another.models.*"
您可以在这里找到更多详细信息:https://github.com/playframework/play-ebean/issues/18
[此外,您需要为每个需要eBean增强器的模块配置playEbeanModels。例如:
lazy val domainModel = (project in file("domain-model")).enablePlugins(PlayJava, PlayEbean).settings(Seq(
libraryDependencies ++= Seq(
"org.projectlombok" % "lombok" % "1.18.4",
"com.h2database" % "h2" % "1.4.197",
guice),
playEbeanModels in Compile := Seq("com.mycompany.model.*"), // this should match the package name from above ebean.default="com.mycompany.model.*
playEbeanDebugLevel := 4
)
也可以在这里找到一些解释:https://github.com/playframework/play-ebean/issues/25