编辑:对于工作示例,请查看此演示项目。
免责声明:我完全是构建 Java Web 应用程序的菜鸟。
我正在尝试将JWT与 Clojure 一起使用,但我根本不知道如何处理这个“servlet”的东西。到目前为止,我的想法是:
创建一个
WApplication
带有“Hello World”的表单。(defn make-hello-app [env] (let [wapp (WApplication. env) root (.getRoot wapp)] (.setTitle wapp "Hello world") (.addWidget root (WText. "Hello!!!!")) wapp))
创建一个 servlet,继承自
WtServlet
.(def servlet (proxy [WtServlet] [] (createApplication [env] (make-hello-app env))))
启动码头并使用 servlet。这是我不知道该怎么做。到目前为止,这是我最好的镜头:
(ns jwttest.core (:use compojure.core) (:use ring.adapter.jetty) (:import (org.eclipse.jetty.server Server)) (:import (eu.webtoolkit.jwt WApplication WEnvironment WtServlet WText WPushButton WLineEdit WBreak))) ;; (the funcions above were defined here) ;; create a jetty server (defn create-a-jetty-server [] (let [connector (doto (SelectChannelConnector.) (.setPort 8080) (.setHost "localhost")) server (doto (Server.) (.addConnector connector) (.setSendDateHeader true))] server)) ;; start the application (defn start-the-app [] (let [server (create-a-jetty-server)] ;; ???? .addServlet ? How? (.start server)))
在我的project.clj
我有:
[org.clojure/clojure "1.4.0"]
[eu.webtoolkit/jwt "3.2.0"]
[compojure "1.1.1"]
[ring "1.1.2"]
我知道 ring 可以从处理程序创建一个 servlet,但在这种情况下,我已经有一个 servlet,所以......我应该怎么做才能运行它?
注意:我的代码基于2009 年发表的这篇非常古老的帖子。