【问题标题】:Clojure server-socket ClassNotFoundException errorClojure 服务器套接字 ClassNotFoundException 错误
【发布时间】: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。

标签: emacs clojure cider


【解决方案1】:

Building an Echo Server in Clojure - Part 2 中的代码来看,这是server.socket 的工作代码。

(ns mire
  (:use server.socket))
(import '[java.io BufferedReader InputStreamReader OutputStreamWriter])

(def port (* 3 1111))

(defn mire-handle-client [in out]
  (binding [*in* (BufferedReader. (InputStreamReader. in))
            *out* (OutputStreamWriter. out)]
        (loop []
            (println (read-line))
            (recur))))

(def server (create-server port mire-handle-client))

【讨论】:

    【解决方案2】:

    命名空间通常以点分隔。 server.socket 在这个库中是。

    试试这个:

    (ns mire (:use [server.socket]))
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-04-24
      • 2014-04-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-05-07
      • 1970-01-01
      相关资源
      最近更新 更多