Создание веб-сервера / контейнера сервлетов в Java - Стоя на плечах гигантов - PullRequest
5 голосов
/ 17 марта 2011

Прежде всего: я хочу сказать, что это в основном личное упражнение. Существует множество контейнеров и серверов (Tomcat, Jetty, Winstone), которые удовлетворяют потребности рынка.

На днях я наткнулся на проект Akka и, будучи в прошлом очень веселым с Эрлангом, решил, что было бы здорово использовать его для создания функционального веб-сервера.

Тогда я начал мечтать. Что, если бы я мог использовать современные фреймворки и создать кодовым способом для гольфа веб-сервер, который почти полностью «стоял на плечах гигантов»? То есть: сколько работы других людей я смог бы использовать.

В идеале требования должны выглядеть примерно так:

  • Отказоустойчивый, кластеризованный, распределенный
  • Простота настройки
  • Поддерживает HTTP, HTTPS и AJP на настраиваемых портах
  • Поддерживает привязку интерфейса и несколько доменов
  • Поддержка JSP, Jython и т. Д. Через подключаемый интерфейс
  • Поддерживает модули, которые позволяют реализовать такие вещи, как WebDAV, прокси и перезапись URL

Мой самый большой камень преткновения на данном этапе - как на земле вы используете Jasper, Jetty, GlassFish или что-нибудь еще для интерпретации JSP, не беспокоясь обо всех других вещах, таких как работа в сети, которые они приносят?

Любые другие предложения по функциям были бы очень хорошими. Я также исследую нетрадиционные методы конфигурации, чтобы увидеть, есть ли что-то, что мне нравится больше, чем XML или файлы свойств. Для тех из вас, кто знаком с Apache, иногда вам нужно немного сценариев, а иногда вам просто нужны пары ключ / значение.

Так что, в любом случае, поразите меня своими предложениями.

1 Ответ

1 голос
/ 17 марта 2011

По крайней мере, Tomcat внедрил свой JSP-движок в виде модуля.Он не выпущен отдельно, и ему может потребоваться некоторая работа, чтобы полностью отделить его от остальной части кода Tomcat.

У него есть отдельное имя (Jasper) и его собственноеHowto .Он находится в пакете org.apache.jasper (и ниже).

...