«Горячая замена кода» не работает - Eclipse не меняет код на JBoss - PullRequest
16 голосов
/ 20 апреля 2010

У меня сейчас проблема с «горячей заменой кода», не работающей на Eclipse Galileo и JBoss 4.2.3.

Среди других приложений я использую Java WAR на моем локальном JBoss. Проект, из которого он построен, управляется Maven. Я строю проект, используя войну целей Maven: взорвался, а затем копирую этот каталог в JBoss с помощью сценария ANT.

Когда я сейчас запускаю приложение и устанавливаю точку останова в любом месте кода, Eclipse правильно останавливается на этой строке в режиме отладки. Но когда я изменяю исходный файл и сохраняю его, Eclipse не применяет это изменение к JBoss. Например, когда я превращаю обычную строку кода в комментарий, отладчик по-прежнему переходит этот комментарий, как если бы это был обычный код Java. Или когда я удаляю строку, кажется, что отладчик не синхронизирован с файлом и начинает перешагивать через скобки.

Но я также не получаю никаких сообщений об «горячей замене кода». Мне кажется, что Eclipse применяет изменения к исходным файлам, но не применяет их к JBoss.

Есть ли какие-то особые предпочтения, которые нужно включить, чтобы заставить горячий код заменить работу? Или есть какие-то ошибки в том, как я собираю и внедряю приложение в JBoss?

Ответы [ 4 ]

41 голосов
/ 20 апреля 2010

Я не работал с JBoss, но у меня есть два предложения.

  1. Если вы запустите свое приложение в Eclipse, используя конфигурацию запуска

    Ваш флаг "Проект" - "Построить автоматически" включен? Если нет, код не компилируется и игнорируется во время выполнения.

  2. Когда вы отлаживаете приложение в удаленном режиме, вы не можете изменить код, но вы можете изменить значение параметров. (Думаю)

9 голосов
/ 19 ноября 2010

У меня были проблемы в проекте с Maven и Eclipse. Ошибки не отображались, но горячая замена кода не работала. Я прочитал, что «Автоматически строить» необходимо проверить. Я проверил это, и это все еще не работало. У меня были некоторые ошибки в других проектах в моем пути сборки. Я считаю, что это была ошибка. Когда я исследовал, я обнаружил, что мы должны были снять флажок «Прервать сборку при ошибках пути сборки». Я дал подробности в ссылке ниже.

2 голосов
/ 21 декабря 2016

Первая проверка - это проект / сборка автоматически.

Может также потребоваться проверить конфигурацию сервера приложений ,

например. для JBoss в Eclipse в представлении «Серверы» дважды щелкните сервер, и есть раздел «Сканеры развертывания» с двумя флажками:

  • Добавить отсутствующие сканеры развертывания
  • Удалить добавленные сканеры развертывания перед выключением

https://docs.jboss.org/author/display/AS7/Deployment+Scanner+configuration JBoss AS / Конфигурация сканера развертывания

0 голосов
/ 24 июня 2019

Я только недавно столкнулся с этой проблемой в Eclipse 2019-06 и обнаружил, что мне пришлось снять флажок с опции «Заменить файлы классов, содержащие ошибки компиляции» в Предпочтения-> Java-> Отладка -> Группа быстрого замены кода , Все остальные варианты там были проверены. До этого я получал «Горячая замена кода не удалась - метод удаления не реализован» , несмотря на то, что я изменил только для того, чтобы вызвать вызов System.out.println. Как только я изменил этот параметр (в том же сеансе отладки), он начал работать для меня.

...