Могут быть разные решения.
1) Упакуйте в EAR только те WAR-ы, которые используют EJB.Затем вы можете использовать EJB через локальные интерфейсы.Все остальные WAR-файлы все еще могут быть развернуты независимо, и им не требуется тот же загрузчик классов, что и EAR.
2) Используйте удаленные EJB.Упакуйте в WARs интерфейсы EJB, которые они используют.Опять же, нет необходимости в том же загрузчике классов.И если вы беспокоитесь о производительности удаленных EJB, то сначала проверьте настоящую производительность.Разработчики Jboss значительно оптимизировали производительность.Например, читайте здесь , они оптимизировали EJB-вызовы
..., чтобы избежать ненужных коммуникаций на стороне сервера, которые обычно включают сетевые вызовы, сортировку / демаршаллинг и т. Д.
3) Анализ зависимостей WAR и EJB, а также зависимостей между EJB друг от друга.Попробуйте определить 4-5 групп или «кластеров» EJB и WAR, которые очень близки друг к другу и используют только несколько EJB из других групп, или даже не используют EJB из других групп.Затем упакуйте такие группы в отдельные EAR.Например, вы можете иметь:
- Основной EAR, который предоставляет 20 EJB, отвечающих за управление пользователями и разрешениями
- Один EAR с 10 EJB и 5 WAR для управления продуктом
- Один EAR с 20 EJB и 30 WAR для управления заказами
- Один EAR с ... EJB и ... WAR для управления отгрузками
Тогда в большинстве случаев вы будетеразверните только один из этих EAR, и поэтому время развертывания будет в 4-5 раз быстрее.