Tengo la sensación de que me he perdido algo obvio aquí, pero no sé por dónde empezar a buscar.404s al desplegar una guerra negra en embarcadero al apretar
Tengo una aplicación noir fresco, creado de esta manera:
$ lein noir new hiworld
agrego un nuevo manejador de página a 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}))
puse para project.clj anillo:
(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)
Comprobar que funciona a nivel local:
$ 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)
construyo una guerra:
$ lein ring uberwar
# builds hiworld-0.1.0-SNAPSHOT-standalone.war
Todo bien hasta ahora. Ahora, implementarlo en el embarcadero:
$ 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
Pero:
$ 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)
Qué me he perdido? Por lo que puedo decir, eso debería ser todo lo que tengo que hacer para implementar una aplicación web trivial en el embarcadero, pero evidentemente tengo algo mal aquí. No me molesta el reinicio, entonces no lo hago think Necesito definir mi propio contexto, ¿o no?
ACTUALIZACIÓN
He seguido this secuencia de instrucciones para crear un simple "hola mundo" guerra no implica clojure en absoluto, y funciona como se esperaba, por lo que parece que hay algo que no Muy bien con la pila clojure.
actualizado de nuevo
que creó la aplicación anillo simple posible como una guerra independiente y desplegado ella. Esto funcionó, por lo que parece que es algo específico del negro.
ACTUALIZADO por tercera vez
he creado e implementado una aplicación compojure hola-mundo, que funcionó como se esperaba.