rest - 学习 Clojure : unable to fix

标签 rest curl clojure

我正在关注一些有关 clojure Rest api 代码示例的博客文章,并发现了这个 -> https://blog.interlinked.org/programming/clojure_rest.html 。但是,当我尝试使用此curl命令发布一些数据时:-
curl -XPOST -d '{"id": "1", "title": "第一个文档", "text": "第一个文档文本"}' http://localhost:3000/documents

,我收到以下异常:-

java.lang.ClassCastException: org.eclipse.jetty.server.HttpInput cannot be cast to clojure.lang.Associative
                    RT.java:702 clojure.lang.RT.assoc
                   core.clj:187 clojure.core/assoc
                 handler.clj:60 clojure-rest.handler/create-new-document[fn]
                   jdbc.clj:302 clojure.java.jdbc/with-connection*
                 handler.clj:59 clojure-rest.handler/create-new-document
                 handler.clj:78 clojure-rest.handler/fn[fn]
                   core.clj:104 compojure.core/make-route[fn]
                    core.clj:94 compojure.core/wrap-route-middleware[fn]
                    core.clj:41 compojure.core/if-route[fn]
                    core.clj:27 compojure.core/if-method[fn]
                   core.clj:118 compojure.core/routing[fn]
                  core.clj:2515 clojure.core/some
                   core.clj:118 compojure.core/routing
                RestFn.java:139 clojure.lang.RestFn.applyTo
                   core.clj:626 clojure.core/apply
                   core.clj:123 compojure.core/routes[fn]
                   Var.java:379 clojure.lang.Var.invoke
                   core.clj:118 compojure.core/routing[fn]
                  core.clj:2515 clojure.core/some
                   core.clj:118 compojure.core/routing
                RestFn.java:423 clojure.lang.RestFn.invoke
                 handler.clj:79 clojure-rest.handler/fn
                   core.clj:189 compojure.core/if-context[fn]
                   core.clj:118 compojure.core/routing[fn]
                  core.clj:2515 clojure.core/some
                   core.clj:118 compojure.core/routing
                RestFn.java:139 clojure.lang.RestFn.applyTo
                   core.clj:626 clojure.core/apply
                   core.clj:123 compojure.core/routes[fn]
          keyword_params.clj:35 ring.middleware.keyword-params/wrap-keyword-params[fn]
           nested_params.clj:84 ring.middleware.nested-params/wrap-nested-params[fn]
                  params.clj:64 ring.middleware.params/wrap-params[fn]
                    json.clj:21 ring.middleware.json/wrap-json-body[fn]
                    json.clj:40 ring.middleware.json/wrap-json-response[fn]
                   Var.java:379 clojure.lang.Var.invoke
                  reload.clj:18 ring.middleware.reload/wrap-reload[fn]
              stacktrace.clj:17 ring.middleware.stacktrace/wrap-stacktrace-log[fn]
              stacktrace.clj:80 ring.middleware.stacktrace/wrap-stacktrace-web[fn]
                   jetty.clj:18 ring.adapter.jetty/proxy-handler[fn]
               (Unknown Source) ring.adapter.jetty.proxy$org.eclipse.jetty.server.handler.AbstractHandler$ff19274a.handle
        HandlerWrapper.java:116 org.eclipse.jetty.server.handler.HandlerWrapper.handle
                Server.java:363 org.eclipse.jetty.server.Server.handle
AbstractHttpConnection.java:483 org.eclipse.jetty.server.AbstractHttpConnection.handleRequest
AbstractHttpConnection.java:931 org.eclipse.jetty.server.AbstractHttpConnection.content
AbstractHttpConnection.java:992 org.eclipse.jetty.server.AbstractHttpConnection$RequestHandler.content
            HttpParser.java:856 org.eclipse.jetty.http.HttpParser.parseNext
            HttpParser.java:240 org.eclipse.jetty.http.HttpParser.parseAvailable
    AsyncHttpConnection.java:82 org.eclipse.jetty.server.AsyncHttpConnection.handle
 SelectChannelEndPoint.java:628 org.eclipse.jetty.io.nio.SelectChannelEndPoint.handle
  SelectChannelEndPoint.java:52 org.eclipse.jetty.io.nio.SelectChannelEndPoint$1.run
      QueuedThreadPool.java:608 org.eclipse.jetty.util.thread.QueuedThreadPool.runJob
      QueuedThreadPool.java:543 org.eclipse.jetty.util.thread.QueuedThreadPool$3.run
               (Unknown Source) java.lang.Thread.run

有人可以帮我解决这个问题吗?
TIA

最佳答案

试试这个:

curl -XPOST -H "Content-Type: application/json" -d '{"id": "1", "title": "First document", "text": "First document text"}' http://localhost:3000/documents

关于rest - 学习 Clojure : unable to fix,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32935212/

相关文章:

http - 在 couchDB 中更新设计文档时出现文档冲突错误

clojure - 在加载命名空间之前预定义变量

api - 休息 API : Is it a really bad practice to create custom HTTP response codes?

Java Android 应用程序和 Node.js + Express.js API

c# - 如何在 RestSharp 中发送 POST 请求?

php - Curl 脚本不适用于某些 url

bash - 是否可以在后台执行多个命令,但等待所有结果并在命令失败时使脚本失败

unit-testing - Clojure 中 with-test 的共享定义

clojure java-time - 日期向前移动一年?

rest - 使用 REST 存储 200MB+ 文件时出现 MarkLogic "XDMP-FRAGTOOLARGE"错误