Я не слишком знаком со Struts (или Spring MVC в этом отношении), но вы можете взглянуть на SpringSource dm Server . Он основан на Equinox, контейнере OSGi, используемом Eclipse, и комплекте Apache Tomcat (а также на платформе Spring).
На сервере SpringSource каждый файл war развертывается более или менее традиционно, но может получать доступ к ресурсам (классам, службам и т. Д.) Через обычные механизмы OSGi. Эти механизмы основаны на загрузчиках классов пакета OSGi, что может быть проблематично для совместного использования файловых ресурсов, таких как jsps, html, css и так далее. Это может работать, если у вас есть что-то похожее на DefaultServlet, которое рендерит вещи из загрузчика классов, а не из файловой системы. (Или, черт возьми, я мог бы сделать это более сложным, чем нужно).
С другой стороны, вы можете развернуть все как независимые веб-приложения и сшить все вместе на стороне клиента.
Первый ответ на вопрос о модульных веб-приложениях выглядит действительно интересным, хотя и не применим напрямую к серверу SpringSource, поскольку не предоставляет OSGi HttpService. Я полагаю, что недавняя работа над корпоративной спецификацией OSGi 4.2 направлена и на подход развертывания SpringSource сервера deploy-war-files-as-OSGi-bundles.
В ответ на ваш РЕДАКТИРОВАТЬ 2 вопрос, если я правильно понимаю, «веб-контекст» в этом ответе будет создаваться динамически с использованием HttpService, который является интерфейсом, который предоставляет методы для
зарегистрировать сервлеты под URL-адресами и
регистрация ресурсов (файлов и т. Д.) По URL-адресам.
Поскольку эти операции обрабатываются динамически, не должно быть никаких явных слияний битов веб-контекста.