Горячая замена Maven + Tomcat + Eclipse Java

У меня проблема. Запускаю Tomcat в режиме JPDA, а после этого выполняю:

mvn tomcat:stop tomcat:undeploy war:inplace tomcat:inplace

После чего я подключаюсь к удаленному приложению Java из Eclipse. Все работает нормально, я могу изменить код, и горячая замена работает.

Когда я добавляю параметры метода/изменения, я повторно развертываю приложение:

mvn tomcat:stop tomcat:undeploy war:inplace tomcat:inplace

После чего, когда я снова подключаюсь к удаленному java-приложению, только теперь, когда я изменяю любой файл (например, ставлю пробел или удаляю пробел, сохраняю), я получаю ошибку, что код не может быть выгружен - "Hot Code Replace Failed - add method not implemented".

В чем проблема?

Спасибо.


person Alexander Ruliov    schedule 05.03.2012    source источник
comment
похоже, что выбор plexus-compiler-eclipse, поскольку компилятор решает эту проблему, я тестирую его.   -  person Alexander Ruliov    schedule 06.03.2012


Ответы (2)


JVM поддерживает горячую замену только для изменений в теле метода. Для других изменений, таких как изменение параметров или добавление новых методов, рассмотрите возможность выбора JRebel, который их поддерживает.

person Kilokahn    schedule 06.09.2012

Агент JVM Spring Loaded должен работать лучше. Во-первых, он имеет новую функцию параметров и методов, которой не хватает при текущей замене горячего кода JVM. Недавно я получил эту настройку и убедился, что новые методы в существующих классах работают должным образом.

person martian111    schedule 06.05.2016