2013-02-16 11 views
14

im Anschluss an die zentask Tutorial und schrieb einen JUnit-Test, der Test wird nicht von der Eclipse-IDE ausführen seine die folgende Ausnahme gebenSpiel Rahmen 2.1 JUnit-Test nicht von Eclipse arbeiten

javax.persistence.PersistenceException: java.lang.IllegalStateException: Class [class play.db.ebean.Model] is enhanced and [class models.User] is not - (you can not mix!!) 
    at com.avaje.ebeaninternal.server.deploy.BeanDescriptorManager.setEntityBeanClass(BeanDescriptorManager.java:1475) 
    at com.avaje.ebeaninternal.server.deploy.BeanDescriptorManager.createByteCode(BeanDescriptorManager.java:1138) 
    at com.avaje.ebeaninternal.server.deploy.BeanDescriptorManager.readDeployAssociations(BeanDescriptorManager.java:1058) 
    at com.avaje.ebeaninternal.server.deploy.BeanDescriptorManager.readEntityDeploymentAssociations(BeanDescriptorManager.java:565) 
    at com.avaje.ebeaninternal.server.deploy.BeanDescriptorManager.deploy(BeanDescriptorManager.java:252) 
    at com.avaje.ebeaninternal.server.core.InternalConfiguration.<init>(InternalConfiguration.java:124) 
    at com.avaje.ebeaninternal.server.core.DefaultServerFactory.createServer(DefaultServerFactory.java:210) 
    at com.avaje.ebeaninternal.server.core.DefaultServerFactory.createServer(DefaultServerFactory.java:64) 

ich ein bisschen gelesen und fand dass für einige Leute Bearbeitung der buils.scala der folgenden Zeile im Innern des Haupt geholfen: ebeanEnabled: = true

ich es den Ball hielt nither closeing die ide play saubere Übersetzung

jedes ide läuft wie???

Antwort

15

Es gibt blog post zum Einrichten von Komponententests zum Ausführen in IDEs. Er schlägt vor, verwendete folgende Befehlszeile java hinzuzufügen, wenn Tests ausgeführt werden:

-javaagent:/path/to/ebean/ebean-2.7.3-agent.jar 

Es scheint, dass keine Schiffe mit ebean Mitteln zu spielen, sollte es zuerst von Ebean-Website heruntergeladen werden (im Haupt ebean Paket).

Ich habe es nicht versucht.

Ebean user guide erwähnt auch (15.5.2 javaagent Abschnitt), gibt es sogar ein Beispiel für die Konfiguration von Eclipse.

, auch Erweiterung zu beschleunigen vielleicht wird dies besser sein:

-javaagent:/path/to/ebean/ebean-2.7.3-agent.jar;packages=models.* 

So wird es (für ORM-Modelle im Play-Standard-Paket) buchen, nur in models.*.

+0

Danke, dass deine Lösung großartig funktioniert !!! – naoru

+0

Ich habe dies in Play 2.1.5 mit avaje-esbeanorm-agent-3.2.2.jar versucht, aber es scheint nicht viel anderes zu geben als diese Nachricht in der Konsole zu geben: transform> cls: play/db/eban/Model msg: ... ignoriere Feld _ebean_intercept – Splaktar

+1

@Splaktar benutze bitte die jar ebean-2.7.3-agent.jar von http://mirrors.ibiblio.org/maven2/org/avaje/ebean/2.7.3/ und dies wird Arbeit (gerade jetzt mit dem Spiel 2.2.6) – Manu

0

Ich habe diesen Fehler, wenn ich versuchte, den öffentlichen Modifikator aus der Deklaration einer der Klassen zu entfernen, die Modell erweitert.

Ich verwendete ein Modell, um eine "durch" -Tabelle zu erstellen (eine Beziehung von vielen zu vielen mit zusätzlichen Informationen), daher ist ein geschützter Zugriff sinnvoll. vielleicht gibt es einen anderen Weg, dies zu tun, aber das Spiel Javadoc ist ziemlich spärlich.

6

Sie können die Avaje Ebean Eclipse Plugin verwenden:

http://www.avaje.org/eclipseupdate/site.xml

Nach der Installation aktivieren Ebean Erweiterung durch einen Rechtsklick auf das Projekt und Ebean Enhancement aktivieren auswählen.

+0

+1 Das hat bei mir funktioniert. – rishimaharaj

+0

Das funktioniert bei Play 2.1.5 nicht. – Splaktar