Делитесь классами Java между военными файлами в Tomcat?

Я использую Tomcat 7 в качестве контейнера сервлетов, и у меня есть два файла войны (два проекта в Eclipse). Проблема в том, что я хочу разделить классы между обоими развернутыми военными файлами. Но, насколько я знаю, это невозможно со спецификациями Tomcat/Servlet. Оба развернутых веб-приложения кажутся изолированными друг от друга.

Итак, я читал, я новичок, от JBoss как сервера приложений, в котором я могу развернуть файлы ear (чтобы я мог поместить в него несколько файлов войны), а затем я могу разделить классы между ними?

Итак, мой вопрос: согласны ли вы с моим утверждением, возможно ли это сделать с JBoss? И надо ли вносить изменения или можно легко и в файл уха поставить и развернуть с помощью JBoss и все заработает?

С уважением, Тим.


person Tim    schedule 24.07.2011    source источник
comment
Я новичок с сервером приложений JBoss. Так что не знаю, возможно ли это с JBoss. Но вы можете иметь общую банку в tomcat. Вам необходимо настроить свойство catalina.properties shared.loader. Но да, вы не можете разделить классы из двух разных войн в tomcat.   -  person Kowser    schedule 24.07.2011
comment
А в JBoss я могу делиться классами из двух разных войн?   -  person Tim    schedule 24.07.2011


Ответы (1)


Есть 2 простых варианта. Оба требуют, чтобы вы определили общие классы в отдельном проекте (JAR), назовем его SHARED. Теперь, когда дело доходит до развертывания, у вас есть 2 варианта:

  1. скопируйте SHARED.jar в папку lib Tomcat, и все готово.
  2. со ссылкой на SHARED.jar в своем WebApp, при экспорте WAR из eclipse инструмент создаст JAR, поместит его в папку WEB-INF/lib WebApp и создаст WAR (см. снимок экрана).

Если вы выберете вариант № 1, важно понимать, что одни и те же классы совместно используются загрузчиками классов WebApp (системный загрузчик классов Tomcat), поэтому вам следует использовать этот вариант, только если вы хотите разделить состояние между разными WebApps (например, Singletons) .

Кстати: скриншот сделан с использованием Eclipse 3.6 + WTP...

введите здесь описание изображения

person home    schedule 24.07.2011
comment
Хм, не уверен... вам нужно решение для Tomcat, а не для JBoss, верно? - person home; 24.07.2011
comment
Если это возможно с Tomcat, это будет хорошо. Но если у меня две войны, то я должен использовать JBoss и он будет работать? Тогда я не знаю разницы между полноценным сервером приложений, таким как JBoss, и контейнером сервлетов, таким как Tomcat, в сочетании с этой проблемой войны ‹-› ушей. Я думал в файле уха я могу поставить несколько джаров и варов и они будут запускаться в JBoss как одно большое приложение а в Tomcat я этого сделать не могу. - person Tim; 24.07.2011
comment
Именно, в Tomcat вам нужно развернуть несколько WAR. Что полностью поддерживается, поэтому вы можете запустить 10 WAR в одном экземпляре Tomcat (JVM). - person home; 24.07.2011
comment
Хорошо, а с JBoss я могу развернуть все в одном ухе и разделить занятия между войнами в JBoss. В Tomcat я должен делать по-вашему с файлом jar, иначе я не могу делиться классами в Tomcat, верно? - person Tim; 25.07.2011