Как повторно развернуть проект EJB без перезапуска сервера

#java #jboss #ejb #javabeans #web

#java #jboss #ejb #javabeans #веб

Вопрос:

Я новичок в JBoss Seam и разработке веб-приложений Java в целом. Одна вещь, которую я не могу понять, просматривая несколько руководств, — это как повторно развернуть компоненты, в которые я внес изменения в проекте EJB, без перезапуска сервера приложений JBoss (6.0), на котором размещен веб-проект JBoss Seam, использующий компоненты. Запуск JBoss AS занимает около 2 минут, и в настоящее время внесение изменений в проект и повторное развертывание затруднены.

Некоторые предложения, которые я прочитал в Интернете, включают:

  • Например, с помощью jmx-консоли. перейдите к http://localhost:8080/jmx-console / … хорошо, но как? Что именно мне делать?
  • создание build.xml подайте файл для ant и запустите какое-то автоматическое развертывание… есть ли какие-нибудь хорошие примеры?

Как остальные из вас, более опытные разработчики веб-приложений JBoss Seam, быстрее развертывают ваши проекты?

Любая помощь с благодарностью, спасибо.

Ответ №1:

Это может быть связано с рядом причин:

  1. Приложение пытается сохранить состояние.
  2. Новое развернутое приложение, имеющее загрузчик классов, отличный от старого.
  3. Другие случайные причины. В нашем случае jboss-classloading.xml конфигурация была неправильной, и это привело к тому, что горячее развертывание не сработало.

Вносили ли вы какие-либо изменения в конфигурацию JBoss? Это также может привести к проблемам с горячим развертыванием.

Удачи.

Комментарии:

1. Как и выше, мой JBoss AS развертывал слишком много нежелательных проектов одновременно… после отмены развертывания нескольких, это было не так медленно. Спасибо за информацию о проблемах с конфигурацией, я буду следить за ними.

Ответ №2:

  1. Используйте функцию горячего повторного развертывания JBoss: просто удалите EAR (WAR) из каталога развертывания и скопируйте туда свою новую версию.
  2. Запустите JBoss в режиме отладки из вашей IDE (Eclipse). Затем некоторые изменения кода могут быть заменены непосредственно в JVM. Если сбой горячей замены, выполните 1. горячее повторное развертывание.
  3. Попробуйте отличный плагин JRebel. Намного мощнее, чем горячая замена 2. JVM. Вы можете объединить Jrebel с 1. горячие повторные развертывания — когда плагин JRebel выходит из строя, выполните горячее повторное развертывание.

Только будьте осторожны, горячее повторное развертывание может выявить утечки памяти в некоторых библиотеках (например, Jasperreports). Если это так, перезагрузите свой сервер. Но перезапускать JBoss нужно очень редко.

Комментарии:

1. Спасибо. Я понял, что медлительность JBoss AS была вызвана тем, что он развертывал слишком много проектов одновременно (я не разворачивал старые проекты, какая ошибка!). Спасибо за вашу помощь, я попробую варианты горячего развертывания, которые вы упомянули, если я когда-нибудь столкнусь с такой же проблемой в будущем.

Ответ №3:

Другой вариант, о котором мне сказали, — это использовать кнопку «Сенсорные дескрипторы» (которая похожа на опцию «быстрое повторное развертывание») в JBoss.

Коснитесь значка дескрипторов в JBoss Dev Studio 4.0

В Dev Studio 4.0 он есть, но не уверен в более ранних версиях. По-видимому, это создает новую временную метку на сервере и заставляет web.xml файл, подлежащий повторному прочтению, таким образом, повторному развертыванию.