NotaCómo integrar aplicaciones web Clojure en Apache
Dada esta OP fue escrito hace unos dos años, en lugar de hacer la misma pregunta de nuevo, me pregunto si existen instrucciones paso a paso así, que puedo integrar una aplicación web Noir u otra aplicación web Clojure en Apache, ya sea Jetty, Tomcat u otra cosa. Existen instrucciones similares para Django, y creo que entiendo que Python se está ejecutando en el caso de Django como un motor en lugar de un anillo de marco, por lo que las cosas son más complicadas con las aplicaciones web de Clojure.
Nota final
estoy profundamente enamorado de Clojure y Compojure parece un framework web ordenada.
Pero todo se vino abajo cuando quise implementar mi aplicación en un servidor de aplicaciones normal como Tomcat como GUERRA. De hecho, tuve que escribir controladores de timbre personalizados para los archivos estáticos y los recursos que funcionarían tanto en Jetty local y Tomcat porque los controladores de stock no, y tuve que anteponer la raíz de contexto en todas partes de forma manual.
Estoy sorprendido negativamente de tener que escribir todo este código para crear la aplicación web más simple que se pueda ejecutar en Jetty y Tomcat. Tengo sólo tres posibles explicaciones para esto:
- Nadie utiliza Clojure/Compojure para otra cosa que el desarrollo local con embarcadero, es decir, en la producción de cualquier cosa
- Todo el mundo despliega aplicaciones Clojure/Compojure en un embarcadero dedicado sin raíz de contexto (como la gente lo hace con aplicaciones Node.js)
- Hay una manera muy sencilla de evitar los problemas me encontré con que no estaba al tanto de
Cuál de estos es en su opinión el caso? ¿O es otra cosa?
Editar:
Tenga en cuenta que la creación de un archivo de la guerra es una obviedad con Maven/Leiningen y no lo que quiere decir. Me pregunto si tengo que escribir tanto código para hacer que Compojure funcione con Tomcat, cosas básicas como el servicio de archivos estáticos y el conocimiento de raíz de contexto que debería funcionar de de fábrica.
+1 Me interesaría mucho el resultado de esta pregunta. –
La plantilla de proyecto de pastel adjunta a mi respuesta se ocupa de los problemas que surgen al servir la aplicación tanto de Jetty para desarrollo * como de * Tomcat. – mac