2013-04-05 4 views
1

У меня есть проект Java EE с EAR и 4 WAR. У меня есть некоторые pojos, которые используются в войнах. Это классы, которые содержат статические переменные и методы и должны быть одинаковыми во всех WAR. Где они должны быть размещены?Архитектура проекта Java EE

Некоторые предпосылки: Я унаследовал проект с помощью часто используемых pojos в одной из войн. Однако я хотел, чтобы все 4 из WARs ссылались на один и тот же экземпляр некоторых новых статически доступных классов. Это было невозможно с ними в одной из войн, поскольку каждая WAR, казалось, принимала свой собственный экземпляр статических статических классов и меняла класс в одной WAR, не приводила к изменению класса в другой WAR.

Чтобы бороться с этим, я установил его в JAR и развернул его на сервере. Но теперь каждый раз, когда проект развертывается, JAR также должен быть встроен и установлен на сервере, если он изменился.

Лицо, которое развертывает это здесь, не любит эту архитектуру, и я подумал, есть ли другой способ сделать это?

ответ

3

Да, файлы WAR будут загружаться под их собственным загрузчиком классов, поэтому они не будут видеть классы друг друга.

Вы можете поместить файл JAR в корень EAR и обратиться к нему в манифест каждой каждой WAR. Эти JAR иногда называются «служебными JAR».

Я согласен с тем, что автономное развертывание такого типа предпочтительнее иметь отдельный файл JAR в другом месте.

Смежные вопросы