問題タブ [compojure]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
clojure - フォームとCompojureを破壊しますか?
何が起こっているのかを実際に理解せずに当て推量で動作するようになったので、これを投稿すると思いました。誰かが説明してくれれば役立つかもしれないと思いました。
Compojureハンドラーで:paramsマップの要素を取得する方法を理解しています。
また
私はその部分が何をしているのか完全には理解していませんが{some_arg "some_arg"}
:(
:remote-addr
また、リクエストの一部にもアクセスしたかったのsome_arg
です。そして、私は
したがって、引用符で囲まれていない文字列some_arg
とip
は、値をバインドする変数の名前ですが、上のマップは有効なClojureマップではありません。それはどのように機能しますか?
また、これはRingリクエストマップ(defroutes
マクロによって提供される)に対して評価されることもわかりますが、上記の式は関数またはマクロ定義ではないため、コードに有効な式として「存在する」にはどうすればよいですか?マクロ引数の通常のルールのある種の一時停止はありますか?私は、この非Lisp'erに理解できる破壊フォームの構文の定義を見つけることができませんでした。
clojure - lein uberjar で生成された Jar が NoClassDefFoundError で失敗する
この project.clj を使用した単純な Web アプリがあります。
私のメインは次のようになります。
REPL を使用すると問題なく動作します。ただし、jarを生成しlein uberjar
て実行しようとすると、次のようになります。
それはこの例外で死にます:
私は何を間違っていますか?それを機能させる方法は?
それが問題かどうかはわかりませんが、jar 内のファイル、clojure 自体、および Java ライブラリは .class ファイルとして展開されますが、すべての clojure ライブラリはプレーンな .clj ファイルとしてのみ存在することに気付きました。
clojure - 構成のインストール
http://en.wikibooks.org/wiki/Compojure/Getting_Startedの指示に従って、私は:
- ダウンロードした http://github.com/weavejester/compojure/tarball/0.3.2
- ~/compojure に展開
- そこへchdir
- パーミッションを実行可能に変更
- ant deps を実行する
- 蟻
- export CLASSPATH=~/compojure/compojure.jar を実行します。
- compojuleシェルスクリプトを作成しました
- Clojure ソースファイル
- そこへchdir
- ./compojure hello.clj を実行
次に、私は得ました:
完全なクラスパスを使用するように Compojure シェル スクリプトを変更しようとしましたが、それでも機能しませんでした。
なぜだめですか?Compojure のインストール方法
internationalization - Clojure で多言語アプリケーションを作成するには?
多言語サポートを備えた Compojure ベースの Web サイトを作成する方法を見つけようとしています。i18n などのソリューションはありますか?
google-app-engine - compojure 0.6.0: Google アプリ エンジンで post 引数を取得する際の問題
これは私が自分のアプリを定義する方法です:
ここのサイトは、compojure 0.6.0 で新しく追加された :params をキャプチャするために使用されます。ただし、投票後に空のマップが表示されます。上記のコードの何が問題なのだろうか?
tomcat - Clojure + Compojure + Maven アプリケーションが Tomcat で動作しない
Compojure Web アプリケーション フレームワークと Maven を使用して、Clojure で記述された単純な Web アプリケーションに取り組んでいます。
これは私のサーブレットの簡易版です。
これは、次のように Maven の Jetty ゴールを使用して正常に機能します。
ただし、これから WAR を作成して Tomcat にデプロイすると、常に 404 ページ、つまり「ファイルが見つかりません」が表示されます。なぜこれが起こるのか教えていただけますか?
次のように WAR をビルドします。
Tomcat で servlet-api.jar の重複に関する警告に気付きましたが、Maven は実際にそれを WEB-INF/lib に入れています。WAR から servlet-api.jar を削除しても同じ問題が発生しますが、これは WAR パッケージ プロセス全体に何か問題があるということですか?
これはおそらく別の URL パスの問題でしょうか? ローカルの Jetty を起動すると、URL は次のようになります。
しかし、Tomcat で起動すると、次のようになります。
http://localhost:8080/myapp/home
「/myapp」はおそらくルートの一部ですか?どうすればその問題に取り組むことができますか?
clojure - run-server は compojure のどこに行ったのですか?
以前は、次のように compojure で Web サーバーを起動できました。
この関数が最新のコンポジュールでどこに行ったか知っている人はいますか? (0.6.2)
ドキュメントによると、コマンドラインから実行し、おかしな自動リロード機能を使用することになっているため、その時点で Python を使用することもできます。
java - Clojureを使用したEclipseでのGAEアプリの開発に関する質問
Eclipseのセットアップとインタラクティブモードで実行されているGAE開発サーバーで反時計回りに作業した後、私はこれらのことをまだはっきりしていませんでした。
1)REPLでコマンドを実行せずにサーバーとアプリケーションを起動するにはどうすればよいですか?
2)アプリケーションをGoogleサーバーにデプロイする場合、アプリケーションのエントリポイントをどこでどのように定義しますか?つまり、Googleはどのアプリケーション、アプリケーションハンドラー、ルートを使用するかをどのように知るのでしょうか。
3)同じプロジェクトでJavaクラスとclojureファイルを使用して組み合わせて、srcフォルダーで作成および編集するときに両方が自動的にコンパイルされるようにすることはできますか?
4)最後にGAEにアップロードするために実際に必要なファイルとjarはどれですか?私はPHPアプリをGAEにデプロイするために使用しましたが、ここでは、コンパイルされたcljファイルを含めてjarを作成する必要があるかどうかわかりません。また、反時計回りやappengine-magicとは異なる方法でファイルを整理したい場合があるので、リソースとクラスへのパスをどこで指定しますか?
5)最後に、Googleの本番サーバーをEmacs-Slime-Swankの組み合わせに接続することは可能ですか?それは夢の実現だろう、笑。
Jetty、Compojure、Ring、Hiccupでappengine-magicを使用しています。
deployment - ClojureWebアプリケーションをApacheに統合する方法
ノート
このOPが約2年前に作成されたことを考えると、同じ質問をもう一度するのではなく、ステップバイステップの手順が存在するかどうか疑問に思っています。これにより、Jetty、Tomcatのいずれであっても、Noirまたは他のClojureWebアプリケーションをApacheに統合できます。 、 または、他の何か。Djangoにも同様の手順があり、PythonはDjangoの場合、リングフレームワークではなくエンジンとして実行されているため、ClojureWebアプリケーションでは事態がより複雑になることを理解しています。
エンドノート
私はClojureが大好きで、CompojureはすっきりとしたWebフレームワークのようです。
しかし、Tomcatのような通常のアプリケーションサーバーにアプリケーションをWARとしてデプロイしたいと思ったとき、すべてが崩壊しました。ストックハンドラーが機能しなかったため、実際にはローカルJettyとTomcatの両方で機能する静的ファイルとリソースのカスタムリングハンドラーを作成する必要があり、コンテキストルートを手動でどこにでも追加する必要がありました。
JettyとTomcatの両方で実行できると考えられる最も単純なWebアプリケーションを作成するために、このすべてのコードを記述しなければならなかったことに、私は否定的に驚いています。私はこれについて3つの可能な説明しかありません:
- Jettyを使用したローカル開発以外の目的で、つまり本番環境でClojure/Compojureを使用する人は誰もいません。
- 誰もがコンテキストルートなしで専用のJettyにClojure/Compojureアプリをデプロイします(人々はNode.jsアプリでそれを行います)
- 私が気づかなかった問題を回避するための本当に簡単な方法があります
あなたの意見では、これらのうちどれが当てはまりますか?それとも何か他のものですか?
編集:
WARファイルの作成は、Maven / Leiningenでは簡単であり、私が言っていることではないことに注意してください。CompojureをTomcatで動作させるには、静的ファイルの提供やコンテキストルート認識などの基本的なものをすぐに使用できるようにするために、非常に多くのコードを記述しなければならないのではないかと思います。
google-app-engine - leinappengine-準備が失敗する
https://github.com/gcv/appengine-magicの例に従って、Clojure / Compojure/appengine-magicを機能させようとしています。
しかし、私が実行すると、次のようlein appengine-prepare
になります。
私は何かを逃したことがありますか?
lein new simple-example
project.cljを編集します。
lein deps
lein appengine-new
core.cljを編集します。
lein appengine-prepare