4

編集:実際のサンプルについては、このデモ プロジェクトをご覧ください。

免責事項:私は、Java Web アプリケーションを構築するのはまったくの初心者です。

Clojure でJWTを使用しようとしていますが、この「サーブレット」の処理方法がわかりません。これまでのところ、私の考えは次のとおりでした。

  1. WApplication「Hello World」フォームで を作成します。

    (defn make-hello-app [env]
      (let [wapp (WApplication. env)
            root (.getRoot wapp)]
        (.setTitle wapp "Hello world")
        (.addWidget root (WText. "Hello!!!!"))
        wapp))
    
  2. から継承されたサーブレットを作成しますWtServlet

    (def servlet
      (proxy [WtServlet] []
        (createApplication [env]
          (make-hello-app env))))
    
  3. jetty を起動し、サーブレットを使用します。これは私がどうしたらいいかわからないものです。これまでのところ、これが私のベストショットでした:

    (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 がハンドラーからサーブレットを作成できることは知っていますが、この場合、既にサーブレットを持っているので、これを実行するにはどうすればよいですか?

注: 2009 年に作成されたこの非常に古い投稿に基づいてコードを作成しています。

4

1 に答える 1