我在逆时针的日食工作。当我运行此代码时:
(require 'http-kit)
;; start concurrent requests, get promise, half the waiting time
(let [response1 (http-kit/get "https://clojure.org")
response2 (http-kit/get "http://clojure.org/")]
;; Handle responses one-by-one, blocking as necessary
;; Other keys :headers :body :error :opts
(println "response1's body: " (:body @response1))
(println "response2's status: " (:status @response2)))
我收到了以下消息:
CompilerException java.io.FileNotFoundException: Could not locate http_kit__init.class or http_kit.clj on classpath. Please check that namespaces with dashes use underscores in the Clojure file name., compiling:(restful_clojure\test.clj:1:1)
所以,接下来我跑:
(println (seq (.getURLs (java.lang.ClassLoader/getSystemClassLoader))))
之后我得到:
(#object[java.net.URL 0x50b65482 file:/E:/workspace/restful-clojure/test/] #object[java.net.URL 0x5f5d7651 file:/E:/workspace/restful-clojure/src/] #object[java.net.URL 0x2878624e file:/E:/workspace/restful-clojure/dev-resources] #object[java.net.URL 0xe56e16d file:/E:/workspace/restful-clojure/resources/] #object[java.net.URL 0x6c26a661 file:/E:/workspace/restful-clojure/target/classes/] #object[java.net.URL 0x58fdaa4a file:/C:/Users/Maciek/.m2/repository/clojure-complete/clojure-complete/0.2.3/clojure-complete-0.2.3.jar] #object[java.net.URL 0x337cc909 file:/C:/Users/Maciek/.m2/repository/http-kit/http-kit/2.1.19/http-kit-2.1.19.jar] #object[java.net.URL 0xa181b82 file:/C:/Users/Maciek/.m2/repository/org/clojure/clojure/1.8.0/clojure-1.8.0.jar] #object[java.net.URL 0x53d4a10e file:/C:/Users/Maciek/.m2/repository/ccw/ccw.server/0.2.0/ccw.server-0.2.0.jar] #object[java.net.URL 0x664eeec4 file:/C:/Users/Maciek/.m2/repository/org/clojure/tools.nrepl/0.2.10/tools.nrepl-0.2.10.jar] #object[java.net.URL 0x33af4785 file:/C:/Users/Maciek/.m2/repository/org/tcrawley/dynapath/0.2.3/dynapath-0.2.3.jar] #object[java.net.URL 0x79a18e79 file:/C:/Users/Maciek/.m2/repository/cider/cider-nrepl/0.9.0/cider-nrepl-0.9.0.jar] #object[java.net.URL 0xf0b9c92 file:/C:/Program%20Files/Java/jdk1.8.0_51/src.zip] #object[java.net.URL 0x1ea27b79 file:/C:/Program%20Files/Java/jdk1.8.0_51/lib/tools.jar])
正如您所见,http-kit已加载
#object[java.net.URL 0x337cc909 file:/C:/Users/Maciek/.m2/repository/http-kit/http-kit/2.1.19/http-kit-2.1.19.jar]
奇怪的是,它在上次系统重启之前工作正常。
这是我的project.clj
;(defproject restful-clojure "0.1.0-SNAPSHOT"
; :description "FIXME: write description"
; :url "http://example.com/FIXME"
; :license {:name "Eclipse Public License"
; :url "http://www.eclipse.org/legal/epl-v10.html"}
; :dependencies [[org.clojure/clojure "1.6.0"]])
; project.clj
(defproject restful-clojure "0.1.0-SNAPSHOT"
; ...project settings...
; The :dependencies key maps to a vector containing all dependencies
; necessary for our project. The dependency on Clojure itself should
; have already been added by Leiningen. We will add Ring, the Jetty
; adapter (so we can start up a web server to serve our application),
; and Compojure, which we will use later on in this tutorial.
:dependencies [[org.clojure/clojure "1.8.0"]
[http-kit "2.1.19"]])
答案 0 :(得分:0)
这不是问题的答案,但它是相关的,我在尝试解决我的错误时发现了这个问题,所以我认为这可能有助于其他人。
我得到了与OP相同的错误,因为我忘了添加
[http-kit "2.2.0"]
在project.clj中的:dependencies []
内。
OP的依赖关系行是正确的,但在调用(require)
时没有对它进行别名处理。 OP问题的实际答案是在一条评论中,到目前为止还没有成为答案。