Ich versuche eine in Clojure geschriebene WAR-Datei in Tomcat 6 auf Debian Lenny zu implementieren.
Ich erhalte eine NullPointerException, wenn ich sie in das Verzeichnis webapps kopiere (sowohl für den ersten Typ als auch beim Überschreiben eines bestehenden Krieges). Seltsamerweise behebt der Neustart von Tomcat das Problem und das Servlet läuft gut. Ich verpackte den Krieg mit Leiningen-Krieg (auch versucht Lein-Ring). Das Servlet funktioniert einwandfrei, wenn Jetty verwendet wird.
Hier ist der relevante Log-Eintrag von Tomcat:
%Vor%Hier ist die Quelle, auf das Nötigste vereinfacht:
%Vor%Relevante lein Abhängigkeiten:
%Vor%Ich habe sichergestellt, dass es keine doppelten JARs in WAR und Tomcat's lib Verzeichnis gibt.
Ich bin ratlos. Wer weiß, was los ist oder Tipps zur Fehlerbehebung? Tomcat bei jedem Einsatz neu starten zu müssen, ist ein Ärgernis.
Das mag vielleicht etwas mit Ihrem Problem zu tun haben, aber ich habe bemerkt, dass Tomcat eine WAR-Datei (besonders eine große), die nicht vollständig in das webapps-Verzeichnis geschrieben wurde, vorzeitig einsetzt. Das ist nicht Tomcat's Schuld; Es kann nicht wissen, wann die Datei vollständig ist.
Ich kopiere nun immer eine WAR-Datei in einen laufenden Tomcat, indem ich sie zum Beispiel in webapp.war.disabled
kopiere und dann umbenenne: mv webapp.war.disabled webapp.war
.
Ich habe fast dasselbe gemacht, aber Tomcat 5.5.34 benutzt und es hat funktioniert.
Ich habe diese Abhängigkeit zu project.clj hinzugefügt:
%Vor%Ich habe diese Dev-Abhängigkeit zu project.clj hinzugefügt:
%Vor%Ich habe die ring-Konfiguration zu project.clj hinzugefügt und sichergestellt, dass meine Handler-Funktion 'handler' heißt:
%Vor%Ich lan Ring überber, dann habe ich die resultierende WAR-Datei umbenannt, so dass sie nicht den "-1.0.0-SNAPSHOT.standalone" im Namen enthielt, bevor die WAR-Datei in das webapps / -Verzeichnis von tomcat kopiert wurde.
>Ich habe vergessen zu erwähnen, dass ich clojure 1.3.0 benutzt habe.
Tags und Links java clojure tomcat war deployment