2011-08-30 15 views
5

私はClojureのWebアプリケーションからJavaで書かれたサーブレットを呼び出す必要があり、私はそれを行う方法を理解していません。 JavaでWebアプリケーションを開発ring/compojureからjavaサーブレットを呼び出すことは可能ですか?

は、私は、web.xml内のすべてのマッピングを記述しなければなりませんでした。 Compojureでは、私はルートを記述する必要があります参照してください。では、Javaサーブレットをそのようなルートの1つにバインドできますか?

申し訳ありませんが、私の質問は愚かですが、私は多くのことを検索したと答えが見つかりませんでした。私はちょうどウェブのために開発を始めています。

+0

今私はリングが提供するテストパッケージを模索しています。リングがそのハンドラをサーブレットに変換することを可能にすることがわかった。実際には私が望んでいる機能実行サーブレットがあります。サービスメソッドを呼び出すことによってハンドラから構築されたサーブレットを呼び出します。しかし、現時点では、正しい方法で使用する方法はわかっているとは言えません。 –

答えて

2

二役立つポインタ:github

上のClojureから完全にVaadinサーブレットを生成し、ここで私はお勧めhow to map a java filter to routes

+0

サーブレットクラスがClojureで実装されているVaadinの同じ例をプロキシで監視しました。それは完全に機能し、私の目標を部分的に満たしていますが、全くありません。私はサーブレットフィルタに関する質問を見てきました。ソリューションはサーブレットコンテナのレベルに基づいています。それはサーブレットコンテナレベルに基づいているので私の望みには合いませんが、Ringはjettyのためだけのアダプタを提供します。私が間違っていたら私を修正してください。特定のサーブレットコンテナに関係なく、JavaとClojureの両方のマッピングをすべてCompojure/ringで処理する必要があります。 –

0

上のSOの質問です方法についての例があります

、唯一の方法があります私の仕事に対処する。 Clojure WebアプリケーションでJavaサーブレットを手動でインスタンス化し、リクエストとレスポンスのパラメータを作成する必要があります。 ring.util.servletライブラリのTest packageでは、このアプローチについて詳細に説明していますが、RingハンドラをJavaサーブレットに変換する場合には、コンテナによってマッピングされたパスに追加Compojureルートまたは環ハンドラを定義する必要がない別々の容器をサーブレットするClojureのアプリケーションとJavaサーブレットを配備する場合に

私の提案は間違っているかどうかを教えてください。