2016-07-11 9 views
0

Gibt es eine Möglichkeit mit objectify zu arbeiten, wenn wir kein Servlet oder eine WEB-INF/web.xml verwenden? Ich benutze Play! Framework 2.5.4 mit Java und ich weiß nicht, wie er damit umgehen ...Objectify mit Play Framework 2

Von diesem Link: Objectify wiki setup

ich einen Weg gefunden, diesen Code auszuführen, indem Sie ein neues Modul zu erstellen:

bind(ObjectifyFilter.class).in(Singleton.class); 

Aber ich weiß nicht, wie Sie ausführen:

filter("/*").through(ObjectifyFilter.class); 

Da ich weiß nicht, wie das zu tun, habe ich versucht:

ObjectifyService.begin(); 
ofy().save().entity(registration).now(); 

Aber ich bekomme nur die folgende Ausnahme:

Fehler beim Speichern [email protected]: keine API-Umgebung ist für diesen Thread registriert.

Vielen Dank für Ihre Hilfe!

Antwort

2

Es sieht wie eine interessante Herausforderung aus.

Das Registrieren eines Filters im Play-Framework ist nicht sehr schwierig, obwohl es nicht der Servlet-Spezifikation entspricht.

https://www.playframework.com/documentation/2.5.x/JavaHttpFilters

Aber das Hauptproblem sehe ich darin, dass (für die klein ich gelesen habe) nutzt dieses Framework die lokalen Thread-Kontextinformationen über die Transaktion zu speichern, und asynchrone Aufgaben. Und das ist nicht kompatibel mit der Art und Weise, in der das Play-Framework die Laufflächen nach einem nicht blockierenden Modell verwendet. https://www.playframework.com/documentation/2.5.x/ThreadPools

Nicht sicher, dass diese Information Ihnen helfen wird, aber Ihnen ein größeres Bild des Spielrahmens geben wird.

Enjoy

+0

Ja, Sie haben Recht (leider). Ich habe eine Problemumgehung mit diesem Beitrag gefunden, indem ich die Google Remote-API verwendet habe. http://stackoverflow.com/questions/27762240/google-app-engine-connect-to-remote-datastore-locally-using-objectify In jedem Fall, danke für Ihre Antwort – Flo354

+0

Gern geschehen. Viel Glück –