2012-02-20 11 views
6

ここでは何かが分かりませんでしたが、どこから探し始めるか分かりません。スクイズの桟橋にノワール戦争を展開したときの404秒

私は以下のようなものを作成し、新鮮なノワールアプリを持っている:

$ lein noir new hiworld 

私はSRC/hiworld/server.cljに新しいページハンドラを追加します。

(ns hiworld.server 
    (:require [noir.server :as server])) 
(server/load-views "src/hiworld/views/") 

(def handler (server/gen-handler {:mode :dev 
            :ns 'hiworld})) 

私がアップしproject.clj設定リング:

(defproject hiworld "0.1.0-SNAPSHOT" 
      :description "FIXME: write this!" 
      :dependencies [[org.clojure/clojure "1.3.0"] 
          [noir "1.2.2-SNAPSHOT"]] 
      :dev-dependencies [[lein-ring "0.5.4"]] 
      :ring {:handler hiworld.server/handler} 
      :main hiworld.server) 

チェックは、それがローカルに動作します:

$ lein deps 
$ lein ring server-headless 
# elsewhere 
$ curl -I localhost:3000/welcome 
HTTP/1.1 200 OK 
Date: Mon, 20 Feb 2012 08:51:15 GMT 
Set-Cookie: ring-session=ef00a7ad-2061-4026-9d94-3ed86ec8c46c;Path=/ 
Content-Type: text/html; charset=utf-8 
Content-Length: 0 
Server: Jetty(6.1.25) 

私は戦争を構築:

$ lein ring uberwar 
# builds hiworld-0.1.0-SNAPSHOT-standalone.war 

すべての良い今のところ。今、私は桟橋に展開:

$ sudo apt-get install jetty libjetty-extra 
$ sudo cp hiworld-0.1.0-SNAPSHOT-standalone.war /usr/share/jetty/webapps/root.war 
$ sudo chown jetty:adm /usr/share/jetty/webapps/root.war 
$ sudo mv /usr/share/jetty/webapps/root /usr/share/jetty/webapps/root-orig 
$ sudo /etc/init.d/jetty restart 

しかし:

$ curl -I localhost:8080/welcome 
HTTP/1.1 404 Not Found 
Date: Mon, 20 Feb 2012 08:59:27 GMT 
Set-Cookie: ring-session=c255da15-6cbd-4d2c-8e17-9d120918bde9;Path=/ 
Content-Type: text/html; charset=utf-8 
Content-Length: 363 
Server: Jetty(6.1.24) 

私は何を逃したのですか?私が言うことができる限り、それは桟橋に簡単なWebアプリを配備するために必要なすべてのものでなければならないが、明らかに私はここで何か間違っている。私は再起動を気にしないので、私はと思う私は自分のコンテキストを定義する必要がありますか?

UPDATE

私はすべてのClojureを含まない、単純な「Hello World」の戦争を作成するための命令this順序を追ってきたが、予想通り、何かがないように思われるので、それは、動作しますclojureスタックとまったく同じです。

はAGAIN

を更新しました私は、スタンドアロンの戦争として最も簡単なリングアプリを作成し、それを展開。これはうまくいきました。だから、それは何かノワール特有のようです。

THIRD TIMEを更新し、私は期待通りに働いていたハローワールドcompojureアプリを作成してデプロイ。

答えて

2

この問題もありました。私はNoirメーリングリストhereの解決策を見つけました。

server.clj私は(server/loadviews)コールを削除し、必要な名前空間に自分のビューを追加しました。

私はコマンドlein ring uberwar warname.warでプロジェクトをビルドしました。

3

.warファイルでは、戦争中に物理ファイルが見つからないため、server/load-viewsは機能しません。 hiworld/server.cljでは、単にビューを提供するすべての名前空間が必要です。

これはドキュメントでは説明されていませんが、私はmailing list threadが間違っていることを説明しました。

関連する問題