Есть ли предпочтительный способ обновления приложений, использующих EJB?

StackOverflow https://stackoverflow.com/questions/248094

Вопрос

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

<Ол>
  • EJB обновляется, приложение не работает.
  • Сервер приложений обновлен, приложение не работает.
  • Есть ли предпочтительный способ обновления клиентских jar-файлов для сервера приложений и bean-компонента без участия человека?

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

    Это было полезно?

    Решение

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

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

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

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

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

    Другие советы

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

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

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

    Лицензировано под: CC-BY-SA с атрибуция
    Не связан с StackOverflow
    scroll top