Clojure'de yazılmış bir WAR dosyasını Debian Lenny'deki Tomcat 6'ya dağıtmaya çalışıyorum.NPE, Tomcat uygulamasında bir Clojure WAR yükleme, yeniden başlatma düzeltmeleri
Webapps dizinine kopyaladığımda NullPointerException alıyorum (hem ilk tür hem de varolan bir savaşın üzerine yazarken). Garip bir şekilde, Tomcat'in yeniden başlatılması sorunu çözüyor ve sunucu uygulaması iyi çalışıyor. SAVAŞI leingen-war ile paketledim (aynı zamanda lein-ring'i de denedim). Servlet Jetty kullanırken iyi çalışıyor. İşte
Jan 12, 2011 7:18:06 PM org.apache.catalina.core.StandardWrapperValve invoke
SEVERE: Allocate exception for servlet foobar
java.lang.NullPointerException
at clojure.lang.Var.invoke(Var.java:373)
at clojure.lang.AFn.applyToHelper(AFn.java:169)
at clojure.lang.Var.applyTo(Var.java:482)
at clojure.lang.Compiler.macroexpand1(Compiler.java:5286)
at clojure.lang.Compiler.macroexpand(Compiler.java:5341)
at clojure.lang.Compiler.eval(Compiler.java:5409)
at clojure.lang.Compiler.load(Compiler.java:5857)
at clojure.lang.RT.loadResourceScript(RT.java:340)
at clojure.lang.RT.loadResourceScript(RT.java:331)
at clojure.lang.RT.load(RT.java:409)
at clojure.lang.RT.load(RT.java:381)
at clojure.core$load$fn__4511.invoke(core.clj:4905)
at clojure.core$load.doInvoke(core.clj:4904)
at clojure.lang.RestFn.invoke(RestFn.java:409)
at clojure.lang.Var.invoke(Var.java:365)
at foobar.servlet.<clinit>(Unknown Source)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
kaynağıdır, çıplak minimuma basitleştirilmiş:
(ns foobar.servlet
(:use [ring.util.servlet :only [defservice]])
(:gen-class :extends javax.servlet.http.HttpServlet))
(defn handler
[req]
{:status 200
:headers {"Content-type" "text/html"}
:body "hi"})
(defservice handler)
İlgili Lein bağımlılıkları: Ben emin oldum
[org.clojure/clojure "1.2.0"]
[ring/ring-core "0.3.4"]
[ring/ring-servlet "0.3.4"]
İşte Tomcat alakalı günlük girişi var WAR ve Tomcat'in lib dizininde yinelenen JAR yok.
Kaybettim. Herkes neyin yanlış olduğunu veya sorun giderme ipuçlarını biliyor mu? Tomcat'i her konuşlandırmaya tekrar başlatmak zorunda kalmak, popodaki bir acıdır.
Bahşiş için teşekkürler, ancak hayır şans :( –