2016-11-28 2 views
0

Было много вопросов о той же ошибке, но эти ответы мне не помогли.Невозможно подключиться к db - PlayFramework + Ebean

Ошибка:

[CompletionException: javax.persistence.PersistenceException: The default EbeanServer has not been defined? This is normally set via the ebean.datasource.default property. Otherwise it should be registered programmatically via registerServer()]

Код, который поднимают эту ошибку:

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:

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:

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:

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.*"] 
} 
+0

Какой тип игры у вас есть? – marcospereira

+0

Я думаю, что использую последнюю версию, в соответствии с "addSbtPlugin (" com.typesafe.play "%" sbt-plugin "%" 2.5.10 ")" –

ответ

0

Это невероятно, но после выброса мусора конфигурации по умолчанию у меня все работает!

Здесь работает чистый конфиг:

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

Я думаю, что это должно быть достаточно application.conf так:

db { 
    default.driver=com.mysql.jdbc.Driver 
    default.url="mysql://hiddenuser:[email protected]/typobank?characterEncoding=UTF-8" 
    default.username=hiddenuser 
    default.password=pass 
} 
ebean.default=["models.*"] 

UPDATE: Я попытался это исправить, но это вызывает исключение при запуске: this raise an exception during startup

0

Ваш

db { 
    db.default... 
} 

вычисляет db.db.default, и именно поэтому он не обнаружен. Это главная причина на первом месте. Он должен быть

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