标签: compojure

哪里的运行服务器在组件中消失了?

我曾经能够像这样在compojure中启动一个Web服务器:

(run-server {:port 8080} "/*" (servlet my-app))
Run Code Online (Sandbox Code Playgroud)

有谁知道这个函数在最新的组件中去了哪里?(0.6.2)

文档说我应该从命令行运行它并使用一些怪异的自动重新加载的东西,此时我可能也在使用python.

clojure compojure

5
推荐指数
1
解决办法
1311
查看次数

是否可以从ring/compojure调用java servlet?

我必须从Clojure Web应用程序调用用Java编写的servlet,我不明白该怎么做.

使用Java开发webapp,我必须在web.xml中描述所有映射.在Compojure中,我看到,我必须描述路线.那么,我可以将Java servlet绑定到一个这样的路由吗?

对不起,如果我的问题是愚蠢的,但我搜索了很多但没有找到答案; 我刚刚开始为网络开发.

java servlets clojure compojure ring

5
推荐指数
1
解决办法
893
查看次数

如何在Ring处理程序中获取HttpServletRequest?

有没有办法在Ring处理程序中获取HttpServletRequest对象?我正在使用Noir来开发一个网络应用程序.我需要在处理URI时获取HttpServletRequest obj.所以我使用(noir.request.ring-request)函数来获取响铃请求映射,其中包含:servlet-request键,但值为nil.这是正确的做法还是我错过了什么?

以下是代码:

(ns my-app
     (:use noir.request))
(defpage [:get "/app"] []
     (str (ring-request)))
Run Code Online (Sandbox Code Playgroud)

结果:

{:remote-addr "127.0.0.1", :scheme :http, :query-params {}, :session {}, :form-params {}, :multipart-params {}, :servlet #, :request-method :get, :query-string nil, :content-type nil, :cookies {"ring-session" {:value "eb509a65-d33a-40d2-9646-e2ff785428b0"}}, :uri "/app", :server-name "127.0.0.1", :params {}, :headers {"cookie" "ring-session=eb509a65-d33a-40d2-9646-e2ff785428b0", "accept-charset" "GBK,utf-8;q=0.7,*;q=0.3", "accept-language" "en-US,en;q=0.8,zh-CN;q=0.6,zh;q=0.4", "accept-encoding" "gzip,deflate,sdch", "accept" "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8", "user-agent" "Mozilla/5.0 (Windows NT 5.1) AppleWebKit/535.2 (KHTML, like Gecko) Chrome/15.0.874.106 Safari/535.2", "connection" "keep-alive", "host" "127.0.0.1:8080"}, :servlet-request #, :content-length nil, :server-port 8080, :character-encoding nil, :servlet-response #, …
Run Code Online (Sandbox Code Playgroud)

web-services clojure compojure ring noir

5
推荐指数
1
解决办法
980
查看次数

Clojure:Webbit + Ring

上下文

我刚刚http://blog.jayfields.com/2011/02/clojure-web-socket-introduction.html工作.

我也有ring + compojure工作.

题:

我想用戒指...不知何故......用webbit这可能吗?

谢谢!

clojure compojure ring websocket

5
推荐指数
1
解决办法
1227
查看次数

如何摆脱Compojure应用程序中的全局数据

http://mindbat.com/2013/03/clojurewest-2013-day-one-notes/上有一条说明如下:

  • def'ing refs和顶级原子基本上是通过单身的全局可变状态,请避免
  • 建议使用构造函数返回要使用的状态变量,然后将该状态传递给每个函数

我认为这是一个很好的建议,但我不完全确定如何在Ring/Compojure应用程序中实现它.任何人都可以举一个具体的例子说明这将如何运作?

我特别感兴趣的是如何组合defroutes,init并以app这种方式一起摆脱该范围内的全局变量.

clojure compojure

5
推荐指数
2
解决办法
659
查看次数

如果用户未登录,如何将用户重定向到其他页面?(环/的Compojure)

如果用户已登录(即会话的user-id密钥值为非零值),则路由到一个页面的最佳方式是什么?如果用户未登录,则是另一个页面的最佳方法?理想的是两组不同的路线.

谢谢!

另外,有没有使用compojure的好示例应用程序?

clojure compojure ring

5
推荐指数
1
解决办法
1168
查看次数

没有实现方法:: make-reader of protocol:#'clojure.java.io/IOFactory for class:nil

我是Clojure的新手,我玩得很开心.我遇到一些麻烦的一件事是如何阅读错误,我个人认为它们不是很具描述性,但这可能是由于我的"新手".

例如,我现在遇到的问题是当我尝试启动我的环服务器时(如果需要,我可以提供更多详细信息):

Started server on port 3000
java.lang.IllegalArgumentException: No implementation of method: :make-reader of protocol: #'clojure.java.io/IOFactory found for class: nil
          core_deftype.clj:544 clojure.core/-cache-protocol-fn
                     io.clj:69 clojure.java.io/fn[fn]
                    io.clj:102 clojure.java.io/reader
               RestFn.java:410 clojure.lang.RestFn.invoke
             validator.clj:161 selmer.validator/validate-tags
             validator.clj:175 selmer.validator/validate
       template_parser.clj:155 selmer.template-parser/read-template
       template_parser.clj:206 selmer.template-parser/preprocess-template
               RestFn.java:410 clojure.lang.RestFn.invoke
                parser.clj:211 selmer.parser/parse-file
                parser.clj:234 selmer.parser/parse
               RestFn.java:442 clojure.lang.RestFn.invoke
                 parser.clj:99 selmer.parser/render-file
               RestFn.java:425 clojure.lang.RestFn.invoke
                 layout.clj:17 picture-gallery.views.layout/picture-gallery.views.layout.RenderablePage
                   core.clj:94 compojure.core/make-route[fn]
                   core.clj:40 compojure.core/if-route[fn]
                   core.clj:25 compojure.core/if-method[fn]
                  core.clj:107 compojure.core/routing[fn]
                 core.clj:2515 clojure.core/some
                  core.clj:107 compojure.core/routing
               RestFn.java:139 clojure.lang.RestFn.applyTo
                  core.clj:626 clojure.core/apply
                  core.clj:112 compojure.core/routes[fn]
                  core.clj:107 compojure.core/routing[fn]
                 core.clj:2515 clojure.core/some
                  core.clj:107 compojure.core/routing
               RestFn.java:139 clojure.lang.RestFn.applyTo
                  core.clj:626 clojure.core/apply
                  core.clj:112 compojure.core/routes[fn] …
Run Code Online (Sandbox Code Playgroud)

clojure compojure ring

5
推荐指数
1
解决办法
3430
查看次数

Clojure Compojure Ring和https

我正在使用Clojure(ring和compojure)来构建一个Web应用程序,我不知道从哪里开始使用https.我有一个需要保护的注册和登录,然后一旦他们通过身份验证,他们就需要保持https状态.

我似乎找不到一个关于一般设置https或专门设置clojure应用程序的好教程.

我找到了这个答案:如何在ring/compojure中启用https和http-> https重定向

这是否意味着我可以编写我的compojure应用程序,好像没有https并且让nginx坐在前面并为我处理所有这些事情?

https clojure compojure ring

5
推荐指数
2
解决办法
3364
查看次数

如何使用Compojure获取POST请求的所有参数

根据路线上的Compojure文档,我可以轻松获得如下的单个参数:

(POST "/my-app" [param1 param2]
  (str "<h1>Hello " param1 " and " param2 "</h1>"))
Run Code Online (Sandbox Code Playgroud)

如何获取所有参数,而不仅仅是单个参数?

clojure compojure ring

5
推荐指数
1
解决办法
4001
查看次数

无效的防伪令牌

当我尝试在使用Compojure模板创建的Clojure Webapp项目中使用POST方法时,得到了“ 无效的防伪令牌 ”。

我进行了研究,Ring中间件为来自其他站点的经过身份验证的请求创建了CSRF(跨站点请求表单)令牌(以使用已经登录并访问不允许访问的页面的其他人的凭据)。

这些令牌是默认的,我们需要在WebApp周围使用ring.middleware的wrap-params。无法到达任何地方。请帮忙 !!如何摆脱无效的防伪令牌

我的handler.clj文件是:

(ns jsonparser-webapp.handler
   (:require [compojure.core :refer :all]
        [compojure.route :as route]
        [jsonparser-webapp.views :as views])
   (:use [ring.middleware.params :only [wrap-params]])

(defroutes app-routes
  (GET "/" 
    [] 
    (views/home-page))
  (GET "/goto" 
    [] 
    (views/goto))
  (POST "/posted"
     {params :params} 
     (views/posted params))
  (route/not-found "Not Found"))

(def app
    (wrap-params app-routes site-defaults))
Run Code Online (Sandbox Code Playgroud)

我的views.clj文件是

(ns jsonparser-webapp.views
   (:require [hiccup.page :as hic-p]
             [hiccup.form :as hf]))

(defn gen-page-head
  [title]
  [:head
     [:title title]])

(defn home-page
  []
  (hic-p/html5
      (gen-page-head "Json Parser Home.")
      [:h1 "Welcome."]
      [:p "Json Web App."] …
Run Code Online (Sandbox Code Playgroud)

eclipse clojure compojure ring counterclockwise

5
推荐指数
1
解决办法
784
查看次数