В моем только что завершенном проекте я работал, чтобы работали распределенные транзакции.
Мы реализовали это с помощью диспетчера транзакций Arjuna от JBoss и декларативных границ транзакций Spring.
Наша последовательность запросов выглядела так:
browser -> secured servlet -> 'wafer-thin' SLSB -> spring TX-aware proxy -> request-handler POJO
Это означало, что у нас была WAR для обслуживания нашего защищенного сервлета и EAR для обслуживания SLSB.
Наш SLSB имел статический блок инициализации для начальной загрузки контекста нашего приложения Spring.
Мне не нравится сочетание технологий, но мне нравится разделять уровни представления и бизнес-уровня, которые могут находиться в разных физических местах.
Мне было бы интересно узнать, что другие предлагают разделить уровни при использовании Spring?