2012-12-06 37 views
5

मैं जावा 1.7.0_09 पर इन आदेशों का उपयोग उत्पन्न करने के लिए और इस वेब साइट पर instrcution से एक नमूना वेब अनुप्रयोग चलानेक्लोजर नोयर वेब एप्लिकेशन के लिए युद्ध फ़ाइल कैसे बनाएं?

https://github.com/ibdknox/lein-noir

lein new noir my-project-name 
lein run 

(मैं उपयोग कर रहा हूँ Leiningen 2.0.0-preview10 करने में सक्षम था जावा हॉटस्पॉट (टीएम) क्लाइंट वीएम)

स्टार्टर वेब ऐप ठीक चलाता है लेकिन मैं युद्ध फ़ाइल जेनरेट करना चाहता हूं जिसे मैं अपने एप्लिकेशन सर्वर (वेबस्पेयर) में मैन्युअल रूप से तैनात कर सकता हूं।

नोएर परियोजना के लिए युद्ध फ़ाइल उत्पन्न करने के लिए लीज़न 2 के लिए क्या आदेश या कॉन्फ़िगरेशन आवश्यक है?

स्पष्ट करने के लिए इस आदेश को 'नई विधा webpoc2 लें "इस के साथ एक विधा परियोजना .clj फ़ाइल

(defproject webpoc1 "0.1.0-SNAPSHOT" 
      :description "FIXME: write this!" 
      :dependencies [[org.clojure/clojure "1.4.0"] 
          [noir "1.3.0-beta3"]] 
      :main webpoc1.server) 

अगर मैं सीएल फ़ाइल

:ring { 
        :handler webpoc1.server/handler 

} 

को अंगूठी जोड़ने उत्पन्न, और lein चलाने अंगूठी uberwar, मैं इस मिल:

Exception in thread "main" java.lang.RuntimeException: No such var: webpoc1.server/handler, compiling:(
/servlet.clj:1) 
     at clojure.lang.Compiler.analyze(Compiler.java:6281) 
     at clojure.lang.Compiler.analyze(Compiler.java:6223) 
     at clojure.lang.Compiler$InvokeExpr.parse(Compiler.java:3497) 
     at clojure.lang.Compiler.analyzeSeq(Compiler.java:6457) 
     at clojure.lang.Compiler.analyze(Compiler.java:6262) 
     at clojure.lang.Compiler.analyze(Compiler.java:6223) 
     at clojure.lang.Compiler$BodyExpr$Parser.parse(Compiler.java:5618) 
     at clojure.lang.Compiler$FnMethod.parse(Compiler.java:5054) 
     at clojure.lang.Compiler$FnExpr.parse(Compiler.java:3674) 
     at clojure.lang.Compiler.analyzeSeq(Compiler.java:6453) 
     at clojure.lang.Compiler.analyze(Compiler.java:6262) 
     at clojure.lang.Compiler.analyzeSeq(Compiler.java:6443) 
     at clojure.lang.Compiler.analyze(Compiler.java:6262) 
     at clojure.lang.Compiler.analyze(Compiler.java:6223) 
     at clojure.lang.Compiler$InvokeExpr.parse(Compiler.java:3548) 
     at clojure.lang.Compiler.analyzeSeq(Compiler.java:6457) 
     at clojure.lang.Compiler.analyze(Compiler.java:6262) 
     at clojure.lang.Compiler.analyze(Compiler.java:6223) 
     at clojure.lang.Compiler$InvokeExpr.parse(Compiler.java:3497) 
     at clojure.lang.Compiler.analyzeSeq(Compiler.java:6457) 
     at clojure.lang.Compiler.analyze(Compiler.java:6262) 
     at clojure.lang.Compiler.analyze(Compiler.java:6223) 
     at clojure.lang.Compiler$BodyExpr$Parser.parse(Compiler.java:5618) 
     at clojure.lang.Compiler$FnMethod.parse(Compiler.java:5054) 
     at clojure.lang.Compiler$FnExpr.parse(Compiler.java:3674) 
     at clojure.lang.Compiler.analyzeSeq(Compiler.java:6453) 
     at clojure.lang.Compiler.analyze(Compiler.java:6262) 
     at clojure.lang.Compiler.analyzeSeq(Compiler.java:6443) 
     at clojure.lang.Compiler.analyze(Compiler.java:6262) 
     at clojure.lang.Compiler.access$100(Compiler.java:37) 
     at clojure.lang.Compiler$DefExpr$Parser.parse(Compiler.java:518) 
     at clojure.lang.Compiler.analyzeSeq(Compiler.java:6455) 
     at clojure.lang.Compiler.analyze(Compiler.java:6262) 
     at clojure.lang.Compiler.analyze(Compiler.java:6223) 
     at clojure.lang.Compiler.compile1(Compiler.java:7030) 
     at clojure.lang.Compiler.compile1(Compiler.java:7025) 
     at clojure.lang.Compiler.compile(Compiler.java:7097) 
     at clojure.lang.RT.compile(RT.java:387) 
     at clojure.lang.RT.load(RT.java:427) 
     at clojure.lang.RT.load(RT.java:400) 
     at clojure.core$load$fn__4890.invoke(core.clj:5415) 
     at clojure.core$load.doInvoke(core.clj:5414) 
     at clojure.lang.RestFn.invoke(RestFn.java:408) 
     at clojure.core$load_one.invoke(core.clj:5227) 
     at clojure.core$compile$fn__4895.invoke(core.clj:5426) 
     at clojure.core$compile.invoke(core.clj:5425) 
     at user$eval3.invoke(NO_SOURCE_FILE:1) 
     at clojure.lang.Compiler.eval(Compiler.java:6511) 
     at clojure.lang.Compiler.eval(Compiler.java:6500) 
     at clojure.lang.Compiler.eval(Compiler.java:6501) 
     at clojure.lang.Compiler.eval(Compiler.java:6477) 
     at clojure.core$eval.invoke(core.clj:2797) 
     at clojure.main$eval_opt.invoke(main.clj:297) 
     at clojure.main$initialize.invoke(main.clj:316) 
     at clojure.main$null_opt.invoke(main.clj:349) 
     at clojure.main$main.doInvoke(main.clj:427) 
     at clojure.lang.RestFn.invoke(RestFn.java:421) 
     at clojure.lang.Var.invoke(Var.java:419) 
     at clojure.lang.AFn.applyToHelper(AFn.java:163) 
     at clojure.lang.Var.applyTo(Var.java:532) 
     at clojure.main.main(main.java:37) 
Caused by: java.lang.RuntimeException: No such var: webpoc1.server/handler 
     at clojure.lang.Util.runtimeException(Util.java:170) 
     at clojure.lang.Compiler.resolveIn(Compiler.java:6740) 
     at clojure.lang.Compiler.resolve(Compiler.java:6710) 
     at clojure.lang.Compiler.analyzeSymbol(Compiler.java:6671) 
     at clojure.lang.Compiler.analyze(Compiler.java:6244) 
     ... 60 more 
Subprocess failed 

जब से मैं नोयर (और Clojure) करने के लिए नया हूँ, मैं figur की कोशिश कर रहा एक नुकसान में हूँ ई यह

उत्तर

3

अन्य प्रश्नों के लिए लीजिंग नोयर रिंग निर्भरता में मेरे प्रश्नों का उत्तर/दस्तावेज मेरे प्रश्नों का उत्तर देना। आप "लीन न्यू नोयर ..." कमांड के साथ नोयर प्रोजेक्ट जेनरेट कर सकते हैं, लेकिन यदि आप एक युद्ध फ़ाइल चाहते हैं तो इन फ़ाइलों को निम्नानुसार अपडेट करें।

project.clj

(defproject noir3 "0.1.0-SNAPSHOT" 
      :description "FIXME: write this!" 
      :dependencies [[org.clojure/clojure "1.4.0"] 
          [noir "1.3.0-beta10"] 
          [hiccup "1.0.2"] 
          [cheshire "4.0.3"] 
          ] 
      :plugins [[lein-ring "0.7.5"]] 
      :ring {:handler noir3.server/handler}    

      :main noir3.server) 

server.clj

(ns noir3.server 
    (:require [noir.server :as server])) 

;;(server/load-views-ns 'noir3.views) 

(server/load-views "src/noir3/views/") 


(def handler (server/gen-handler {:mode :dev 
            :ns 'noir3})) 

(defn -main [& m] 
    (let [mode (keyword (or (first m) :dev)) 
     port (Integer. (get (System/getenv) "PORT" "8080"))] 
    (server/start port {:mode mode 
         :ns 'noir3}))) 

तब, निम्न

  1. "lein रन" (जाँच लें कि आपके पृष्ठ पहुंच रहे हैं चलाने),
  2. "lein अंगूठी सर्वर" (जाँच लें कि आपके पृष्ठ पहुंच रहे हैं),
  3. और अंत में "lein अंगूठी युद्ध" - आप लक्ष्य निर्देशिका में युद्ध फ़ाइल के रूप में देखना चाहिए
2

क्या आपने handler को webpoc1.server में घोषित किया है जिसका आप संदर्भ दे रहे हैं? कुछ इस तरह:

(def handler 
    (server/gen-handler {:mode :prod 
         :ns *ns*})) 

http://www.webnoir.org/tutorials/others/ कैसे अंगूठी के साथ नोयर का उपयोग करने के बारे में निर्देश के प्रदान करता है।

+0

मुद्दे के परस्पर विरोधी संस्करणों के बारे में था जार फ़ाइल निर्भरता। नोयर "1.3.0-बीटा 3" जार फ़ाइल में लीक-रिंग के साथ असंगत हिचअप का एक पुराना संस्करण शामिल था – user193116