mit der neuesten Version von Objectify (5.1), am folgenden Fehler bekommen, wenn ich versuche, die ofy() Methode für den Zugriff aufObjectify 5.1 Kontext nicht Fehler Gestartet aufgrund fehlenden ObjectifyFilter
Sie haben einen Objectify Kontext nicht gestartet. Vermutlich vermisst du den ObjectifyFilter. Wenn Sie nicht im Kontext einer HTTP-Anforderung ausgeführt werden, lesen Sie die Methode ObjektifyService.run().
ich es von appengine Webapplikation leite, denselben Code und Konfiguration in älteren Versionen fein gearbeitet
Folgende ist meine Konfiguration, ähnlich dem Beispiel in objektivieren Dokumentation
web.xml
<filter>
<filter-name>ObjectifyFilter</filter-name>
<filter-class>com.googlecode.objectify.ObjectifyFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>ObjectifyFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
OfyService Klasse
public class OfyService {
static {
long start = System.currentTimeMillis();
factory().register(User.class);
log.info(" Entity Registration took : {} ms", (System.currentTimeMillis() - start));
}
public static Objectify ofy() {
return ObjectifyService.ofy();
}
public static ObjectifyFactory factory() {
return (ObjectifyFactory) ObjectifyService.factory();
}
}
aber ich definiere ObjectifyFilter, irgendeine Idee, warum bekomme ich diesen Fehler? und wie kann ich es reparieren?
Danke!
UPDATE:
ich die objektivieren Version zu Version 5.1.5 aktualisiert haben, aber immer noch das Problem nicht behoben wird jedes Update auf das?
Überprüfen Sie, ob Sie ofy() aufrufen, um Start zB Aus irgendeinem Grund - außerhalb des Bereichs einer Anfrage - haben Sie den ObjektifyFilter nicht durchlaufen. – koma
Nein ist nicht anderswo angerufen, ich strikte streng vony() durch OfyService Klasse, auch FYI der gleiche Code funktioniert in der Version vor 5.1 –
Überprüfen Sie, um sicherzustellen, dass 1) Sie nicht aufrufen yy() vor dem Filter ist Eingerichtet; sagen Sie, vielleicht, von einem anderen Filter höher in der Kette und 2), dass Sie nicht mehrere Versionen von objektivieren auf Ihrem Klassenpfad (mvn clean) haben. Sie sollten in der Lage sein, den Stacktrace zu betrachten und zu sehen, welcher Code versucht, außerhalb des Filters Objectify zu verwenden; Wenn der Filter installiert wurde, würden Sie ihn im StackTrace sehen. Veröffentliche es. – stickfigure