首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法连接到db - PlayFramework + Ebean

无法连接到db - PlayFramework + Ebean
EN

Stack Overflow用户
提问于 2016-11-28 05:51:06
回答 3查看 447关注 0票数 0

关于同样的错误,有很多问题,但这些答案并没有帮助我。

错误是:

CompletionException: javax.persistence.PersistenceException:默认的EbeanServer还没有定义?这通常是通过ebean.datasource.default属性设置的。否则,应该通过registerServer()以编程方式注册

引发此错误的代码:

代码语言:javascript
复制
public Result newuser() {
    Form<UserAuth> userform = formFactory.form(UserAuth.class).bindFromRequest();
    if(userform.hasErrors()) {
        return landing();
    }

    userform.get().save();
    flash("success", "User " + userform.get().login + " has been added");
    return landing();
}

build.sbt:

代码语言:javascript
复制
version := "1.0-SNAPSHOT" 
lazy val root = (project in file(".")).enablePlugins(PlayJava, PlayEbean)
scalaVersion := "2.11.7"
libraryDependencies ++= Seq(
javaJdbc,
cache,
javaWs,
evolutions,
"com.adrianhurt" %% "play-bootstrap" % "1.1-P25-B3",
"mysql" % "mysql-connector-java" % "5.1.21"
)

plugins.sbt:

代码语言:javascript
复制
addSbtPlugin("com.typesafe.play" % "sbt-plugin" % "2.5.10")
addSbtPlugin("com.typesafe.sbt" % "sbt-play-enhancer" % "1.1.0")
addSbtPlugin("com.typesafe.sbt" % "sbt-play-ebean" % "3.0.2")

application.conf:

代码语言:javascript
复制
play.evolutions {
   #db.default.enabled = false
}

play.db {
 config = "db"
 default = "typobank"

 prototype {
 # Sets a fixed JDBC connection pool size of 50
 #hikaricp.minimumIdle = 50
 #hikaricp.maximumPoolSize = 50
 pool = "default"
 driver = com.mysql.jdbc.Driver
 user=user
 password=pass
 url="jdbc:mysql://localhost/typobank"

 hikaricp {
  #connectionTestQuery = "SELECT 1"
 }
 }
 }
 db {
    db.default.driver=com.mysql.jdbc.Driver
    db.default.url="jdbc:mysql://localhost/typobank?characterEncoding=UTF-8"
    db.default.username=hiddenuser
    db.default.password=pass
    ebean.default=["models.*"]
 }
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2016-11-29 05:15:14

这是难以置信的,但在扔掉默认配置垃圾,我已经让所有的工作!

这里使用的是纯配置:

代码语言:javascript
复制
play.crypto.secret = "changeme"

play.i18n.langs = [ "en" ]

db.default.driver=com.mysql.jdbc.Driver
db.default.url="jdbc:mysql://localhost/typobank?characterEncoding=UTF-8"
db.default.username=hiddenuser
db.default.password=pass

ebean.default=["models.*"]
票数 0
EN

Stack Overflow用户

发布于 2016-11-28 13:33:07

我觉得应该够像这样的application.conf了:

代码语言:javascript
复制
db {
    default.driver=com.mysql.jdbc.Driver
    default.url="mysql://hiddenuser:pass@localhost/typobank?characterEncoding=UTF-8"
    default.username=hiddenuser
    default.password=pass
}
ebean.default=["models.*"]

更新:我尝试了这个修复,但这会在启动时引发异常:

票数 0
EN

Stack Overflow用户

发布于 2017-12-17 20:06:45

你的

代码语言:javascript
复制
db {
  db.default...
}

计算结果为db.db.default,这就是为什么没有检测到它。这首先是主要原因。一定是

代码语言:javascript
复制
db {
  default.driver=com.mysql.jdbc.Driver
  default.url="jdbc:mysql://localhost/typobank?characterEncoding=UTF-8"
  default.username=hiddenuser
  default.password=pass
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40837909

复制
相关文章

相似问题

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