2013-08-31 69 views
1

我试图运行一个Clojure的web应用程序使用我戒指,的Compojure,打嗝,和雷音环写道,当我运行雷音环服务器,我得到一个例外。java.lang.IllegalArgumentException异常

java.lang.IllegalArgumentException: No implementation of method: :as-file of protocol: #'clojure.java.io/Coercions found for class: clojure.l 
ang.PersistentVector 
     at clojure.core$_cache_protocol_fn.invoke(core_deftype.clj:541) 
     at clojure.java.io$fn__8496$G__8491__8501.invoke(io.clj:35) 
     at clojure.java.io$file.invoke(io.clj:413) 
     at leiningen.core.project$absolutize.invoke(project.clj:308) 
     at clojure.lang.AFn.applyToHelper(AFn.java:163) 
     at clojure.lang.AFn.applyTo(AFn.java:151) 
     at clojure.core$apply.invoke(core.clj:619) 
     at clojure.core$partial$fn__4190.doInvoke(core.clj:2396) 
     at clojure.lang.RestFn.applyTo(RestFn.java:137) 
     at clojure.core$apply.invoke(core.clj:619) 
     at clojure.core$update_in.doInvoke(core.clj:5587) 
     at clojure.lang.RestFn.invoke(RestFn.java:445) 
     at leiningen.core.project$absolutize_path.invoke(project.clj:314) 
     at clojure.core.protocols$fn__6034.invoke(protocols.clj:143) 
     at clojure.core.protocols$fn__6005$G__6000__6014.invoke(protocols.clj:19) 
     at clojure.core.protocols$seq_reduce.invoke(protocols.clj:31) 
     at clojure.core.protocols$fn__6028.invoke(protocols.clj:48) 
     at clojure.core.protocols$fn__5979$G__5974__5992.invoke(protocols.clj:13) 
     at clojure.core$reduce.invoke(core.clj:6177) 
     at leiningen.core.project$absolutize_paths.invoke(project.clj:322) 
     at leiningen.core.project$init_profiles.doInvoke(project.clj:603) 
     at clojure.lang.RestFn.invoke(RestFn.java:425) 
     at leiningen.core.project$read.invoke(project.clj:684) 
     at leiningen.core.project$read.invoke(project.clj:685) 
     at leiningen.core.project$read.invoke(project.clj:686) 
     at leiningen.core.main$_main$fn__1332.invoke(main.clj:256) 
     at leiningen.core.main$_main.doInvoke(main.clj:252) 
     at clojure.lang.RestFn.invoke(RestFn.java:408) 
     at clojure.lang.Var.invoke(Var.java:415) 
     at clojure.lang.AFn.applyToHelper(AFn.java:161) 
     at clojure.lang.Var.applyTo(Var.java:532) 
     at clojure.core$apply.invoke(core.clj:617) 
     at clojure.main$main_opt.invoke(main.clj:335) 
     at clojure.main$main.doInvoke(main.clj:440) 
     at clojure.lang.RestFn.invoke(RestFn.java:436) 
     at clojure.lang.Var.invoke(Var.java:423) 
     at clojure.lang.AFn.applyToHelper(AFn.java:167) 
     at clojure.lang.Var.applyTo(Var.java:532) 
     at clojure.main.main(main.java:37) 

在谷歌上搜索我已经做显示了两个选项,测试服不正确命名,或是在我的project.clj多个Java源文件路径,这两者我检查了,所以我很为难。

有人可以通过堆栈跟踪筛选并指向正确的方向吗?谢谢。

编辑:project.clj

(defproject cardmage "0.1.0-SNAPSHOT" 
    :description "FIXME: write description" 
    :url "http://example.com/FIXME" 
    :source-paths ["src/main/clojure"] 
    :java-source-paths ["src/main/java"] ; Java source is stored separately. 
    :test-path ["src/test/clojure"] 
    :resource-paths ["src/main/resource"] 
    :dependencies [[org.clojure/clojure "1.5.1"] 
       [ring "1.2.0"] 
       [compojure "1.1.5"] 
       [hiccup "1.0.4"] 
       [org.clojure/data.json "0.2.3"] 
       [org.clojure/data.xml "0.0.7"] 
       [org.clojure/java.jdbc "0.3.0-alpha4"] 
       [ring-anti-forgery "0.2.1"] 
       [lib-noir "0.6.8"] 
       [com.novemberain/monger "1.5.0"] 
       [mysql/mysql-connector-java "5.1.26"] 
       [com.amazonaws/aws-java-sdk "1.5.5"] 
       [ragtime "0.3.3"]] 
    :plugins [[ragtime/ragtime.lein "0.3.3"] 
      [lein-ring "0.8.7"] 
      [lein-beanstalk "0.2.7"] 
      [lein-cljsbuild "0.3.2"]] 
    :ragtime {:migrations ragtime.sql.files/migrations 
      :database "jdbc:mysql://localhost:3306/example_db?user=root"} ;; Fill this in later. 
    :ring {:handler cardmage.core/handler} 
    :aws { 
     :access-key ~(System/getenv "AWS_ACCESS_KEY") 
     :secret-key ~(System/getenv "AWS_SECRET_KEY") 
     :beanstalk { 
        :environments [{:name "beta" 
            :cname-prefix "beta"} 
            {:name "rc" 
            :cname-prefix "rc"} 
            {:name "prod" 
            :cname-prefix "www"}]}} 
    :cljsbuild { 
    :builds [{ 
     :source-paths ["src/main/cljs"] 
     :compiler { 
      :output-to "resources/public/js/main.js" ; default: target/cljsbuild-main.js 
      :optimizations :advanced 
      :pretty-print true}}]}) 

我使用leiningen 2.3.2

+0

请将您的project.clj和您的Lein版本 – Chiron

回答

3

test-path是奇异的,但你给它一个载体。你想只给它一个字符串,或者使用test-paths,如lein's sample project.clj建议(你也可以看到这个文件通过lein help sample)。

相关问题