【发布时间】:2014-07-12 16:53:01
【问题描述】:
我正在尝试测试mire。
当我执行这段代码时
(ns mire
(:use [clojure.contrib server-socket duck-streams]))
我有java.io.FileNotFoundException 错误。
谷歌搜索发现clojure.contrib已弃用,我在project.clj中添加了server-socket作为依赖项,并执行leon repl安装jar库
mire> lein repl
Retrieving server-socket/server-socket/1.0.0/server-socket-1.0.0.pom from clojars
Retrieving server-socket/server-socket/1.0.0/server-socket-1.0.0.jar from clojar
然后在 emacs/cider 中,我尝试使用此代码来获得相同的 FileNotFoundException 错误。
(ns mire
(:use [server.socket server-socket duck-streams]))
java.io.FileNotFoundException: Could not locate server/socket/server_socket__init.class or
server/socket/server_socket.clj on class path:
在命令行 REPL 中,(use [server.socket server-socket]) 给了我同样的错误信息。
可能出了什么问题?我使用 emacs/苹果酒/nREPL。这是project.clj。
(defproject mire "0.1.0-SNAPSHOT"
:description "FIXME: write description"
:dependencies [[org.clojure/clojure "1.5.1"]
[server-socket "1.0.0"]])
这是导致错误的代码:
(ns mire
(:use [clojure.contrib server-socket duck-streams]))
(def port (* 3 1111))
(defn mire-handle-client [in out]
(binding [*in* (reader in)
*out* (writer out)]
(loop []
(println (read-line))
(recur))))
(def server (create-server port mire-handle-client))
【问题讨论】:
-
没有服务器套接字命名空间。这是
server.socket。此外,您应该使用 :require,而不是 :use。