Как развернуть простые проекты Java в EAR? - PullRequest
4 голосов
/ 02 февраля 2010

Я использую MyEclipse, и я использую Enterprise Application Project (EAP), который автоматически развертывает мои Web и EJB Projects.

В этих проектах используются некоторые другие проекты, которые являются просто POJO, "простыми" Java-проектами. Как в библиотеках.

Проблема в том, что когда я что-то изменяю в "простых" Java-проектах, мне приходится заново развертывать весь EAP в моем JBoss, чтобы увидеть изменения.

Мне нужен способ автоматического развертывания этих проектов (POJO) в EAP, поэтому горячая замена кода также работает с ними.

Есть идеи?

Ответы [ 7 ]

1 голос
/ 16 февраля 2010

Можете ли вы развернуть взорванное EAR, а затем просто скопировать несколько файлов, которые вы изменили? Вот как я делаю все свое развитие. Если вы измените простой класс JSP или Java, вы можете просто скопировать эти отдельные файлы, и сервер их заберет.

1 голос
/ 02 февраля 2010

С JBoss вы можете просто поместить свои JAR-файлы в каталог server/default/deploy - это было по крайней мере верно для более старых версий - благодаря Специальный загрузчик классов JBoss (ненавидите или любите его).

С WebLogic вы можете использовать " Shared Libraries ".

В обоих случаях упомянутые функции являются проприетарными, то есть нестандартными, и их использование сделает ваше приложение не переносимым.


Извините, я имел в виду автоматически. Например: 1) Запущенный сервер 2) Измените что-нибудь в Java-проекте (библиотеке) 3) О-о, мне нужно вручную повторно развернуть библиотеку (сделать jar, скопировать и перезапустить сервер). Я хочу, чтобы он вносил изменения автоматически, как в случае с горячим развертыванием.

Аааа, ладно, понял. В этом случае «Развертывание развернутого архива» - это путь, который поддерживается MyEclipse (и JBoss). Цитирование 7.1 Режимов развертывания проекта J2EE :

MyEclipse может развертывать проекты Web, EJB и корпоративных приложений на любом сервере приложений с поддержкой MyEclipse. MyEclipse поддерживает два режима упаковки развертывания: развернутое развертывание архива и развертывание упакованного архива.

  • Развернутое развертывание архива - Это ориентированная на разработку, но нестандартная модель упаковки и развертывания приложений J2EE. Подобно пакетному развертыванию, развертываемые ресурсы приложения организованы так, чтобы соответствовать стандартной структуре каталогов / файлов J2EE. Но вместо того, чтобы создавать и развертывать один архивированный файл, вся структура ресурсов приложения - каталоги и файлы - копируется соединителем сервера приложений в специальное расположение сервера для развернутых архивов. Служба развертывания MyEclipse, использующая технологию «Sync-on-Demand» , будет синхронизировать все развертывания проекта MyEclipse со всеми изменениями исходного кода в соответствующем проекте MyEclipse. Примечание: развернутое развертывание не поддерживается стандартом J2EE и поддерживается не всеми серверами приложений.
0 голосов
/ 27 апреля 2010

Поскольку я использую MyEclipse, я нашел способ сделать это, добавив ссылку в EAP к модулям Java. При развертывании проекта Java-модули развертываются в AS.

Единственная плохая вещь в том, что теперь мне нужно вручную управлять application.xml.

Это все объясняется в этой ссылке .

0 голосов
/ 26 апреля 2010

Для этого существует коммерческий инструмент JRebel: http://www.zeroturnaround.com/jrebel, хотя я не уверен, будет ли он работать в вашем конкретном случае. Существует 30-дневная пробная версия для тестирования.

0 голосов
/ 14 марта 2010

Попробуйте разделить элементы POJO и J2EE на 2 отдельных EAR или WAR и EAR и разверните их отдельно. У меня та же проблема с проектом Weblogic, и я всегда развернул EJB и весь персонал, если я что-то изменил. Эта идея пришла ко мне не так давно. Нет времени, чтобы попробовать, и эти проекты завершены. Но вы можете использовать мою идею.

0 голосов
/ 12 февраля 2010

Если вы добавляете свои простые проекты в виде библиотек, рассматривали ли вы возможность использования OSGI для динамической замены пакетов во время выполнения.Вам не нужно повторно развертывать все свои приложения, и вы можете просто поменять банки.jBoss имеет OSGI-реализацию под названием jbossosgi , которая в настоящее время находится в стадии бета-тестирования.

0 голосов
/ 02 февраля 2010

Могут быть способы сделать это для конкретного сервера, чтобы предоставить общие библиотеки для приложений Java EE, но я не думаю, что спецификация Java EE содержит такие средства. Один из способов - добавить его в путь к классам серверов, но, как правило, этого следует избегать, а приложение объединять в единое целое ... т.е. ухо. Что, кажется, ты уже делаешь.

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

...