2014-02-28 3 views
5

Когда я пытаюсь написать простое консольное приложение одного класса - проблем нет. Я могу изменить код в методе при отладке.Горячий обмен кодом не работает, почему?

Проблема с моими веб-приложениями на Jetty. Он не работает и не работает в обычном режиме отладки (нажатие кнопки отладки в eclipse), так и в режиме удаленного отладки, описанном here. Я могу отлаживать, но не могу изменить даже обычные не статические методы, например добавить sysout, например, я могу изменить его, но после сохранения он не обновляется и работает так же, как и раньше.

Кроме того, я говорил с моими коллегами, он работает на них, но они используют версию eclipse Spring Tool Suite, я попытался и пришел к выводу, что он работает в последней версии STS из коробки в обычном режиме отладки и не работает, t в последней версии Eclipse.

Что может быть причиной?

+5

Включена ли опция 'Build Automatically'? –

+0

@Kouhei Mikami yes – MaxNevermind

+1

Вы обновили свой Eclipse в последнее время? Случилось со мной однажды, что я обновил и повторно использовал старую рабочую область со старым '.metadata', и отладчик вел себя довольно случайным образом. ** Попробуйте запустить проект в новом чистом рабочем пространстве! ** –

ответ

2

Ответ основан на моих комментарии к вопросу (как это было предложено ОП):

поведение Странного затмения может произойти, когда ваше рабочее пространство или метаданные проекта повреждены. Это может произойти, например, при обновлении версии Eclipse и использовании рабочей области, созданной старой версией.

Вам следует попытаться заново создать рабочее пространство и настроить новую проверку проекта. Если проблема уходит, вы знаете, что в метаданных рабочей области было что-то подозрительное.

+2

Вы в основном делаете общий ответ «Если его сломанный он не будет работать». У вас нет доказательств того, что это имеет место здесь, так что это не фактический ответ. – Gimby

+0

@Gimby Я написал этот ответ на основе моих комментариев и предложений от OP. Удалите нижний план. Спасибо. –

+0

Я дал вам достаточную причину, почему я спускаюсь вниз, если кто-то другой не согласен со мной, они свободны, чтобы снова продвигать его. Ваш ответ - не ответ. – Gimby

2

Вам необходимо будет использовать прокси-сервер с возможностью горячей замены для классов подкачки в контейнере EE, например . Проверьте это.

+1

Вам не нужно jRebel для * Горячей замены *. Тот факт, что приложение работает на сервере, не имеет значения. –

+2

@PavelHoral Это никогда не касалось меня, когда я работал разработчиком Java EE для JBoss ... Вы уверены, что мы говорим об одном и том же? 'Hot Swap! = Hot Redeploy' – Antoniossss

+1

Это не бесплатно, не так ли? Это функция, которая должна работать, я бы предпочел сначала попробовать работать с ней. – MaxNevermind