2012-03-27 3 views
0

Ich töte meinen Google App Engine-DevServer mit kill. Ich möchte einige lokale Änderungen aufräumen, bevor der Server stirbt. Wie kann ich es tun?Google App-Engine, Java: Aktion ausführen, bevor der DevServer getötet wird

+0

Warum stoppen Sie den Server mit 'kill -9'? (Sie können SIGKILL im Allgemeinen nicht fangen). – geoffspear

+0

Stimmt, ich kann es mit nur "töten" stoppen. – gruszczy

+0

Warum müssen Sie das tun? Sich auf dieses Verhalten zu verlassen, ist im wirklichen Leben eine sehr schlechte Idee. –

Antwort

0

Um dev Server töten Sie einfach control-c als the docs Zustand drücken können:

To stop the web server, press Control-C (on Windows, Mac or Linux). 

ctrl-c ist in Unix-Systemen sendet die SIGINT-Signal, das Sie manuell über kill -SIGINT <pid> erreichen können.

Diese sollte ordnungsgemäß Herunterfahren des Servers - in diesem Fall können Sie einen Lifecycle-Listener installieren, um beim Herunterfahren des Servers aufgerufen werden. Implementieren Sie einfach die contextDestroyed(..) Methode wie in this example gezeigt und registrieren Sie sie in Ihrem web.xml.

HINWEIS: Ein solcher Shutdown-Haken funktioniert NICHT auf dem Produktionsserver (verifiziert). Ich habe es nie auf dem Dev-Server versucht, aber es sollte funktionieren, da dies ein einfacher Jetty ist.

+0

Ich werde es morgen versuchen und sagen, wie es funktioniert hat. Danke :) – gruszczy

+0

Ok, das Problem ist: '// App Engine ruft diese Methode derzeit nicht auf. 'ContextDestroyed'. Hast du noch andere Ideen? – gruszczy