2012-08-30 8 views
5

Zunächst einmal kann diese Frage viel scheint gleichermaßen: Play Framework: PersistenceException: The type is not a registered entity? (Ebean) aber es ist nicht ...Play-Framework: 2.0.2 PersistenceException: Kann nicht registrieren Klasse in Ebean Server

Ich versuche, eine Einheit zu retten, aber es nicht einmal die Vorlage rendern, nach dem Neustart Play gibt es nur den Fehler im Betreff. Natürlich kompiliert die App.

ich getan habe alle Schritte EBean mit Play zu verwenden:

  • kommentierte Modell mit @Entity (javax.persistence.Entity)
  • Modell Modell erweitert (play.db.ebean.Model)
  • Ebean ist ermöglichen meine application.confebean.default="models.*" (meine Klassen sind in der models Paket)

Irgendwelche Vorschläge? Tests, die ich machen kann? Dinge zu überprüfen? Um fair ist Stackoverflow mein letztes Mittel ...

Vielen Dank im Voraus,

komplette Stack-Trace:

play.api.Configuration$$anon$1: Configuration error [Cannot register class [models.Producer] in Ebean server] 
    at play.api.Configuration$.play$api$Configuration$$configError(Configuration.scala:71) ~[play_2.9.1.jar:2.0.2] 
    at play.api.Configuration.reportError(Configuration.scala:258) ~[play_2.9.1.jar:2.0.2] 
    at play.Configuration.reportError(Configuration.java:119) ~[play_2.9.1.jar:2.0.2] 
    at play.db.ebean.EbeanPlugin.onStart(EbeanPlugin.java:71) ~[play_2.9.1.jar:2.0.2] 
    at play.api.Play$$anonfun$start$1.apply(Play.scala:60) ~[play_2.9.1.jar:2.0.2] 
    at play.api.Play$$anonfun$start$1.apply(Play.scala:60) ~[play_2.9.1.jar:2.0.2] 
Caused by: java.lang.ExceptionInInitializerError: null 
    at java.lang.Class.forName0(Native Method) ~[na:1.7.0_02] 
    at java.lang.Class.forName(Class.java:264) ~[na:1.7.0_02] 
    at play.db.ebean.EbeanPlugin.onStart(EbeanPlugin.java:69) ~[play_2.9.1.jar:2.0.2] 
    at play.api.Play$$anonfun$start$1.apply(Play.scala:60) ~[play_2.9.1.jar:2.0.2] 
    at play.api.Play$$anonfun$start$1.apply(Play.scala:60) ~[play_2.9.1.jar:2.0.2] 
    at scala.collection.LinearSeqOptimized$class.foreach(LinearSeqOptimized.scala:59) ~[scala-library.jar:0.11.3] 
Caused by: java.lang.RuntimeException: DataSource user is null? 
    at com.avaje.ebeaninternal.server.lib.sql.DataSourcePool.<init>(DataSourcePool.java:198) ~[ebean.jar:na] 
    at com.avaje.ebeaninternal.server.lib.sql.DataSourceManager.getDataSource(DataSourceManager.java:210) ~[ebean.jar:na] 
    at com.avaje.ebeaninternal.server.lib.sql.DataSourceGlobalManager.getDataSource(DataSourceGlobalManager.java:63) ~[ebean.jar:na] 
    at com.avaje.ebeaninternal.server.core.DefaultServerFactory.getDataSourceFromConfig(DefaultServerFactory.java:427) ~[ebean.jar:na] 
    at com.avaje.ebeaninternal.server.core.DefaultServerFactory.setDataSource(DefaultServerFactory.java:388) ~[ebean.jar:na] 
    at com.avaje.ebeaninternal.server.core.DefaultServerFactory.createServer(DefaultServerFactory.java:168) ~[ebean.jar:na] 
+1

bekomme das gleiche Problem ..: \ das macht mich verrückt –

+0

Für mich passiert es jedes Mal, wenn das Verzeichnis des Spiels Projekt geändert wird. Irgendwo wird das Verzeichnis, in dem das Spiel läuft, hart im kompilierten Code codiert. –

Antwort

-1

Aus dem Protokoll, wie es scheint, dass Sie die Datenquelle Benutzer eingestellt haben :

:

Caused by: java.lang.RuntimeException: DataSource user is null? 

Sie können durch Bearbeitung gießen conf/application.con Datei tun,

db.default.driver=org.h2.Driver 
db.default.url="jdbc:h2:mem:DB_NAME" 
db.default.user=sa  <-- HERE !! 
db.default.password="" 
db.default.logStatements=true 
+1

Hallo, vielen Dank für die Antwort, aber das war es nicht ... Meine Datenbank wurde in der application.conf eingestellt. Ich weiß nicht, was das Problem war, als ich mit einer neuen Anwendung begann und die Dinge langsam machte (eine Sache nach der anderen), es hat einfach funktioniert. Ich bin frustriert von diesem launischen Verhalten des Spiels ... – user1637212

+1

Für mich wurde es durch 'ebean.default =" models. * "' Zeile in der Config kommentiert, aber in dieser Frage scheint dieser Schlüssel richtig eingestellt zu sein. Das Einstellen von Benutzer und Passwort für h2 ist unnötig, ohne es auszuprobieren - es funktioniert auch. – kolen

14

Ich hatte genau das gleiche Problem wie im ersten Beitrag beschrieben. Es ist seltsam, in meinem Fall nur

laufen
# play 

> clean 
> compile 
> run 

die App begann wieder zu arbeiten

+1

Ich habe Java auf Version 8 aktualisiert, was mich zu unbekannten konstanten Fehlern geführt hat. Das Aktualisieren von SBT von 0.13.0 auf 0.13.1 hat das behoben. Danach bekam ich diesen Ebean-Registrierungsfehler, der mit den angegebenen Befehlen behoben wurde. Vielen Dank! – Raidok

+1

Erstaunlich, das ist Magie! – wrongusername

0

Das Problem ist die Ebeans Konfigurationen, einige Vereinigung nicht korrekt ist. Vielleicht haben Sie etwas in ihren Anwendungsmodellen geändert und nicht in Ebean aufgenommen.