Примечание
Учитывая, что этот OP был написан около двух лет назад, вместо того, чтобы задавать тот же вопрос снова, мне интересно, существуют ли пошаговые инструкции, чтобы я мог интегрировать Noir или другое веб-приложение Clojure в Apache, будь то Jetty, Tomcat или что-то еще. Подобные инструкции существуют и для Django, и я думаю, что я понимаю, что Python запускается в случае Django как движок, а не в кольцевую структуру, поэтому все сложнее с веб-приложениями Clojure.
Заключительная записка
Я глубоко влюблен в Clojure, а Compojure выглядит как аккуратная веб-фреймворк.
Но все это развалилось, когда я хотел развернуть свое приложение на обычном сервере приложений, таком как Tomcat, как WAR. Мне действительно приходилось писать пользовательские обработчики звонков для статических файлов и ресурсов, которые работали бы как на локальном Jetty, так и на Tomcat, потому что обработчики хранилища не сделали этого, и мне пришлось вручную добавлять корневой контекст.
Я отрицательно удивлен тем, что мне пришлось написать весь этот код, чтобы создать простейшее веб-приложение, которое можно было бы запустить как на Jetty, так и на Tomcat. У меня есть только три возможных объяснения:
- Никто не использует Clojure/Compojure для чего-то другого, кроме локального развития с Jetty, т.е. в производстве
- Все развертывают приложения Clojure/Compojure на выделенном Jetty без контекстного корня (пользователи LIke делают это с помощью приложений Node.js).
- Существует очень простой способ обойти проблемы, с которыми я столкнулся, я не знал о
Какой из них, по вашему мнению, имеет дело? Или это что-то еще?
Edit:
Обратите внимание, что создание военного файла без проблем с Maven/Leiningen, а не то, что я имею в виду. Мне интересно, что мне нужно написать так много кода, чтобы заставить Compojure работать с Tomcat, базовые вещи, такие как статические файлы и контекстное понимание, которые должны работать из коробки.