Есть ли подходящий метод для обновления приложений, которые используют EJB? - PullRequest
1 голос
/ 29 октября 2008

У меня есть Java-приложение, которое работает с EJB, но если:

  1. EJB обновляется, приложение не работает.
  2. Сервер приложений обновлен, приложение не работает.

Есть ли предпочтительный способ обновления клиентских jar-файлов для сервера приложений и bean-компонента без участия человека?

Если предпочтительный метод зависит от сервера приложений, то предположим, что jboss.

Ответы [ 2 ]

0 голосов
/ 30 октября 2008

Ваша основная проблема заключается в том, что если контракт интерфейса между одним компонентом изменяется, он разрушает другой компонент. Это не проблема, ограниченная приложениями и EJB-компонентами, просто она не безопасна для компилятора.

Единственный известный мне автоматизированный подход - это настроить ваши проекты таким образом, чтобы сделать проект App зависимым от проекта EJB (в среде IDE и файлах сборки), предоставляя вам проверку компилятора. И развернуть их вместе как EAR.

Если это не вариант, и они должны быть развернуты отдельно, то ваш разработчик EJB должен быть в курсе того, как сохранить обратно совместимые интерфейсы без изменений.

0 голосов
/ 30 октября 2008

Это одна из причин, по которой люди переходят на веб-службы :) Или также используют JMS.

Действительно, если ваш сервер приложений обновляется или меняется поставщик, ваши старые / чужие заглушки не будут работать с новым кодом на стороне сервера. : - (

Помните, EJB объявил, что должна быть роль развертывания приложения? Он должен подготовить client.jar для клиентских приложений и распространить его (или, может быть, это пакет приложений? Не имеет значения; дело в том, что это не автоматическая операция).

Некоторые приемы могут быть возможны (например, требовать размещения client.jar в определенном месте на сервере, чтобы сначала загрузить его клиентом, а затем использовать загрузчик классов), но это больше взломов, чем установившаяся практика.

Что касается специфики JBoss, у меня нет никакой информации.

...