2015-07-06 13 views
7

Niedawno uaktualniony do wersji 2.4 i nadal uczę się wszystkich małych dziwactw i tym podobnych. Próbuję tylko uruchomić moją stronę indeksu i mam ciężki czas, i wiem, że jest to coś małego, czego mi brakuje. Tutaj jest błądMysterious Play 2.4 Injection wyjątek

CreationException: Unable to create injector, see the following errors: 

1) Error in custom provider, Configuration error: Configuration error[Cannot connect to database [default]] 
    while locating play.api.db.DBApiProvider 
    while locating play.api.db.DBApi 
    for parameter 0 at play.db.DefaultDBApi.<init>(DefaultDBApi.java:28) 
    at play.db.DefaultDBApi.class(DefaultDBApi.java:28) 
    while locating play.db.DefaultDBApi 
    while locating play.db.DBApi 
    for field at play.db.DBModule$NamedDatabaseProvider.dbApi(DBModule.java:61) 
    while locating play.db.DBModule$NamedDatabaseProvider 
    at com.google.inject.util.Providers$GuicifiedProviderWithDependencies.initialize(Providers.java:149) 
    at play.db.DBModule.bindings(DBModule.java:40): 

I moje informacje o konfiguracji (tak, że numer portu dla MySQL jest poprawna)

application.conf

db.default.driver=com.mysql.jdbc.Driver 
db.default.url="jdbc:mysql:localhost:33060/coffee_bean" 
db.default.username= 
db.default.password="" 
ebean.default = ["models.*"] 

Główny kontroler

public Result index() { 
     ObjectNode response = Json.newObject(); 
     Configuration config = Play.application().configuration(); 
     response.put(config.getString("coffee.bean.message.key"),config.getString("coffee.bean.success.message")); 
     response.put(config.getString("version"), config.getString("coffee.bean.version")); 

     return ok(response); 
    } 

zbudowany. sbt

name := """coffee-bean""" 

version := "1.0-SNAPSHOT" 

lazy val root = (project in file(".")).enablePlugins(PlayJava) 

scalaVersion := "2.11.6" 

libraryDependencies ++= Seq(
    javaJdbc, 
    cache, 
    javaWs, 
    "mysql" % "mysql-connector-java" % "5.1.36", 
    evolutions 
) 

// Play provides two styles of routers, one expects its actions to be injected, the 
// other, legacy style, accesses its actions statically. 
routesGenerator := InjectedRoutesGenerator 
lazy val myProject = (project in file(".")) 
    .enablePlugins(PlayJava, PlayEbean) 

plugins.sbt

// The Play plugin 
addSbtPlugin("com.typesafe.play" % "sbt-plugin" % "2.4.2") 

// Web plugins 
addSbtPlugin("com.typesafe.sbt" % "sbt-coffeescript" % "1.0.0") 
addSbtPlugin("com.typesafe.sbt" % "sbt-less" % "1.0.6") 
addSbtPlugin("com.typesafe.sbt" % "sbt-jshint" % "1.0.3") 
addSbtPlugin("com.typesafe.sbt" % "sbt-rjs" % "1.0.7") 
addSbtPlugin("com.typesafe.sbt" % "sbt-digest" % "1.1.0") 
addSbtPlugin("com.typesafe.sbt" % "sbt-mocha" % "1.1.0") 

// Play enhancer - this automatically generates getters/setters for public fields 
// and rewrites accessors of these fields to use the getters/setters. Remove this 
// plugin if you prefer not to have this feature, or disable on a per project 
// basis using disablePlugins(PlayEnhancer) in your build.sbt 
addSbtPlugin("com.typesafe.sbt" % "sbt-play-enhancer" % "1.1.0") 

// Play Ebean support, to enable, uncomment this line, and enable in your build.sbt using 
// enablePlugins(SbtEbean). Note, uncommenting this line will automatically bring in 
// Play enhancer, regardless of whether the line above is commented out or not. 
addSbtPlugin("com.typesafe.sbt" % "sbt-play-ebean" % "1.0.0") 
addSbtPlugin("com.typesafe.play" % "sbt-plugin" % "2.4.0") 

Coś jeszcze trzeba zobaczyć?

Do tej pory próbowałem tylko ponownie zaimportować zależności, podwójne sprawdzanie, aby upewnić się, że wersja jest poprawna, ponownie przejrzałem dokumentację i jak dotąd nic nie działało. Spodziewam się, że pewien użytkownik będzie posiadał wszystkie odpowiedzi :)

Odpowiedz

2

Brakuje .

zdefiniować go w conf\application.conf:

db.default.driver=com.mysql.jdbc.Driver 
db.default.url="jdbc:mysql://localhost/playdb" 
db.default.username=playdbuser 
db.default.password="a strong password" 
+0

See zmiana kodu – Zarathuztra

+0

pan zdecydowanie wskazał mnie we właściwym kierunku. Napisałem niepoprawny ciąg połączenia>. < – Zarathuztra

+0

Mimo że zmiana informacji o połączeniu jest poprawna, nadal nie mogę się połączyć. Czy wiesz, czy są jakieś inne ustawienia do ustawienia? Czuję się teraz jak taki kretyn>. < – Zarathuztra

0

Mój config:

<persistence xmlns="http://xmlns.jcp.org/xml/ns/persistence" 
      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
      xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/persistence http://xmlns.jcp.org/xml/ns/persistence/persistence_2_1.xsd" 
      version="2.1"> 

    <persistence-unit name="defaultPersistenceUnit" transaction-type="RESOURCE_LOCAL"> 
     <provider>org.hibernate.jpa.HibernatePersistenceProvider</provider> 
     <non-jta-data-source>caribbeanDS</non-jta-data-source> 
     <properties> 
      <property name="hibernate.dialect" value="org.hibernate.dialect.H2Dialect"/> 
      <property name="hibernate.hbm2ddl.auto" value="update"/> 
     </properties> 
    </persistence-unit> 

</persistence> 

Mój kod:

version := "1.0-SNAPSHOT" 

lazy val root = (project in file(".")).enablePlugins(PlayJava) 

scalaVersion := "2.11.6" 

libraryDependencies ++= Seq(
    javaJdbc, 
    cache, 
    javaWs, 
    javaJpa, 
    "org.hibernate" % "hibernate-entitymanager" % "4.3.10.Final" // replace by your jpa implementation 
) 


// Play provides two styles of routers, one expects its actions to be injected, the 
// other, legacy style, accesses its actions statically. 
routesGenerator := InjectedRoutesGenerator 


fork in run := true 


# Default database configuration using MySQL database engine 
# Connect to playdb as playdbuser 
db.caribbean.driver=com.mysql.jdbc.Driver 
db.caribbean.url="jdbc:mysql://localhost:8889/bahamasnet" 
db.caribbean.username=root 
db.caribbean.password="root" 

db.caribbean.jndiName=caribbeanDS 

jpa.default=defaultPersistenceUnit 
+0

Uświadomiłem sobie, że mam informacje o stanie hibernacji, gdzie powinien być MySQL ... – Michael

Powiązane problemy