【问题标题】:Why do I get java.lang.exception unrecognized body on routes with friend/authenticated as a wrapper?为什么我在将朋友/身份验证为包装器的路由上得到 java.lang.exception 无法识别的主体?
【发布时间】:2013-12-18 12:25:28
【问题描述】:

我正在使用friend和friend-redis-token,其中会话存储在redis中以用于我的compojure应用程序。

对于类似的路线..

  (POST "/service/logout" {headers :headers}
          (session/invalidate-session
           (headers "x-auth-token")))

一切正常!

只要我用朋友/认证包装处理程序。 我收到错误

:WARN:oejs.AbstractHttpConnection:/service/logout
java.lang.Exception: Unrecognized body: ...

我正在使用以下中间件:

                        (jsonware/wrap-json-body)
                        (jsonware/wrap-json-params)
                        (jsonware/wrap-json-response)

要将正文中的所有内容都转换为 JSON,这会与朋友冲突吗?

【问题讨论】:

  • jsonware 到底是什么?
  • 它是 json 的环中间件,我只是在我的代码中将它重命名为 jsonware。

标签: clojure compojure


【解决方案1】:

我相信问题可能出在session/invalidate-session 的返回值上。所以尝试这样的事情:

(POST "/service/logout" {headers :headers}
  (do (session/invalidate-session
        (headers "x-auth-token"))
      ""))

Compojure 试图巧妙地利用路由的返回值做正确的事情,这通常会导致诸如此类的问题。

【讨论】:

    猜你喜欢
    • 2011-07-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-06-02
    • 2020-10-25
    • 1970-01-01
    • 2021-01-30
    • 2019-05-08
    相关资源
    最近更新 更多