在play 2.4.2 java中配置Ebean?

Posted

技术标签:

【中文标题】在play 2.4.2 java中配置Ebean?【英文标题】:Ebean configuration in play 2.4.2 java? 【发布时间】:2015-08-08 12:34:38 【问题描述】:

我是使用 DI 的初学者,我有一些问题要将我的应用程序从 play java 2.3 迁移到 2.4.2。

顺便说一句,如果有一些模板可以像计算机基础应用程序一样播放 java 2.4.x,那就太好了。

当我创建一个完全新的应用程序时,我无法让 Play Ebean 插件正常工作。

作为说明我添加:Play Ebean插件锡项目/plugins.sbt:

addSbtPlugin("com.typesafe.sbt" % "sbt-play-ebean" % "1.0.0")

然后在 build.sbt 中:

lazy val myProject = (project in file(".")).enablePlugins(PlayJava, PlayEbean)

在 application.conf 中:

ebean.default = ["models.*"]

默认数据库是 postgresql

它可以编译,但是当我运行应用程序时出现以下错误:

Error in custom provider, Configuration error: Configuration error[null]
  while locating play.db.ebean.DefaultEbeanConfig$EbeanConfigParser
  at play.db.ebean.EbeanModule.bindings(EbeanModule.java:24):
Binding(interface play.db.ebean.EbeanConfig to
ProviderConstructionTarget(class
play.db.ebean.DefaultEbeanConfig$EbeanConfigParser) eagerly) (via
modules: com.google.inject.util.Modules$OverrideModule ->
play.api.inject.guice.GuiceableModuleConversions$$anon$1)
  while locating play.db.ebean.EbeanConfig
    for parameter 0 at
play.db.ebean.EbeanDynamicEvolutions.<init>(EbeanDynamicEvolutions.java:36)
....
Caused by: Configuration error: Configuration error[null]
......
Caused by: java.lang.NullPointerException at play.db.ebean.DefaultEbeanConfig$EbeanConfigParser.parse(DefaultEbeanConfig.java:79)

完整的跟踪就是这个:http://pastebin.com/7DtjSPFA

怎么了?是否需要更多配置?

感谢您的帮助。

【问题讨论】:

尝试将“进化”添加到您的 build.sbt 依赖项中 【参考方案1】:

感谢您的回复。终于解决了,问题出在conf/application.conf中的数据库连接配置:

db.default.driver=org.postgresql.Driver
db.default.url="jdbc:postgresql://localhost:5432/mydb"
db.default.username="user"
db.default.password="password"

我的错,我在配置连接池 HikariCP(play.db.prototype.driver 等...)时对其进行了修改,因此数据库连接可以正常工作,但不能使用 Ebean。

【讨论】:

【参考方案2】:

如果您使用的是 Guice,请确保在项目的 build.sbt 文件中删除它的 libraryDependencies。如果您是从 2.3 迁移到 2.4,Play 现在提供开箱即用的 Guice:Play Framework Migration Guide - DI

对于 Play Framework 2.4,从 build.sbt 中删除:

"com.google.inject" % "guice" % "3.0"

【讨论】:

我在build.sbt 中使用“com.google.maps”%“google-maps-services”%“0.1.8”时可能遇到了同样的问题。

以上是关于在play 2.4.2 java中配置Ebean?的主要内容,如果未能解决你的问题,请参考以下文章

Java Play 中的配置 - ebean 和 postgresql

Play 2.4 / Ebean / JPA / hibernate-entitymanager 的正确配置是啥?

Play Framework - Ebean - 没有为类“类名”注册 ScalarType

子项目 Play 2.4 中的 Ebean 增强

Lob 使用 play 框架和 Ebean 和 H2 返回 null

Play 2.4 - 在 Eager 单例模块中使用 Ebean