Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/clojure/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Clojure 尝试将ring.middleware.json-params与compojure一起使用_Clojure_Leiningen_Compojure_Ring - Fatal编程技术网

Clojure 尝试将ring.middleware.json-params与compojure一起使用

Clojure 尝试将ring.middleware.json-params与compojure一起使用,clojure,leiningen,compojure,ring,Clojure,Leiningen,Compojure,Ring,我不熟悉Clojure、leiningen和java工具链(但不熟悉lisp、函数式编程和一般的软件)。我正在尝试在Compojure中引导一些RESTful web服务 我在开始使用compojure时没有遇到任何问题,而是按照 https://github.com/weavejester/compojure/wiki/Getting-Started 我现在正试图从现在已经过时的网站中逐步添加功能 http://mmcgrana.github.com/2010/08/clojure-rest

我不熟悉Clojure、leiningen和java工具链(但不熟悉lisp、函数式编程和一般的软件)。我正在尝试在Compojure中引导一些RESTful web服务

我在开始使用compojure时没有遇到任何问题,而是按照

https://github.com/weavejester/compojure/wiki/Getting-Started
我现在正试图从现在已经过时的网站中逐步添加功能

http://mmcgrana.github.com/2010/08/clojure-rest-api.html
从上面第一个链接的
leiningen
项目开始(它通过
lein-ring start
工作),我在project.clj中添加了一行

(defproject hello-world "0.1.0-SNAPSHOT"
  :description "FIXME: write description"
  :url "http://example.com/FIXME"
  :dependencies [[org.clojure/clojure "1.4.0"]
                 [ring-json-params "0.1.3"]  ;;; <---===/// Here's the line I added
                 [compojure "1.1.5"]]
  :plugins [[lein-ring "0.8.2"]]
  :ring {:handler hello-world.handler/app}
  :profiles
  {:dev {:dependencies [[ring-mock "0.1.3"]]}})
现在我明白了

java.io.FileNotFoundException: Could not locate ring/middleware/json_params__init.class or ring/middleware/json_params.clj on classpath: 
 at clojure.lang.RT.load (RT.java:432)
    clojure.lang.RT.load (RT.java:400)
    clojure.core$load$fn__4890.invoke (core.clj:5415)
    clojure.core$load.doInvoke (core.clj:5414)
由于我完全是工具链的noob,我不知道如何设置或检查类路径,也不知道如何找出leiningen存放的
json_params
,甚至不知道如何查看类文件中的名称


除了这个问题的具体解决方案外,我还希望能有新手的指点,这样我将来也许可以自己解决类似这样的简单问题。

启动服务器时,你有没有遇到这个错误?我的环境没有问题。

以下是我所做的:

lein new compojure hello
然后按您的操作更改project.clj并运行:

lein deps
最后加上:

(:use ring.middleware.json-params)
处理.clj

启动服务器,不会发生错误


我建议您构建一个新项目,然后再试一次。

我在emacs nrepl中编译项目时出错了……看来问题就在工具链的emacs部分——我没有报告的部分。
lein ring server
正在工作。--是的,重新启动emacs并重新启动
nrepl插孔
解决了问题m、 看起来要更改project.clj您必须从project.clj目录重新启动
nrepl
。这很有意义。感谢您提供的线索!在更改project.clj时,您似乎不必重新启动所有操作。只需重新启动该文件,nrepl服务器就会知道该文件。
(:use ring.middleware.json-params)