2010-06-03 3 views
4

Я пытаюсь отлаживать вызов веб-службы, который использует JMS в фоновом режиме. У меня JBoss работает в режиме отладки. Случается, что когда я нажимаю F6 в Eclipse (для выполнения текущей строки), он пропускает определенные строки. У меня есть этот метод:Почему Eclipse пропускает строки при отладке JBoss?

@Override 
    public void log(MsgPayload payload) { 

    1 Date startTime = new Date(); 
     logger.info("Publishing with BufferedPublisher.java start time:"+startTime); 
    3 publisher.send(payload); 
     Date endTime = new Date(); 
     logger.info("Publishing with BufferedPublisher.java end time:"+endTime); 
     long mills = endTime.getTime()-endTime.getTime(); 
     double secs = mills/1000.0; 
     logger.info("Publishing with BufferedPublisher.java total time (seconds):"+secs); 
    } 

Так что происходит? У меня точка останова в строке 1. Когда я нажимаю F6, она пропускает эту строку и переходит к строке 3. Когда я снова нажимаю F6, она идет до конца метода. Половина кода никогда не выполняется. ??? Мой вопрос - почему. Я предполагаю, что мой источник плохо связан с реальным кодом, который выполняется. Но как это изменить?

Спасибо.

ответ

5

Часто это происходит, когда источник, который вы смотрите с помощью отладчика, - это не та же самая версия кода, что приложение действительно работает. Потенциально предыдущая версия имела код в строках 1 и 3, а пробел (или комментарий) в строке 2 и никакой другой код. Убедитесь, что у вас установлен самый последний развернутый код (и ваш отладчик настроен так, чтобы указывать на самый последний источник), и посмотрите, все ли это происходит.

+0

Ну, и что, если я все еще получаю эту проблему, хотя я проверял тройку, у меня есть соответствующий jar и sources.jar? Я пытаюсь выполнить Spring MVC package v3.0.5, развернутый на Tomcat6, если это имеет значение. –

1

Я только что решил аналогичную проблему. У меня были некоторые внешние банки в моем пути сборки java, которые были плохо настроены. Я исправил его, очистил и восстановил проект. После этого все работало нормально.

0

Я запускаю MyEclipse 9.1, и моя проблема была решена путем изменения файла .classpath, который находится только под каталогом имен проектов. Я не знаю, как он изменился, но он отправил горячие разворачивания в цель.

После того, как код был изменен для развертывания на WEB-INF/классах, линии отладчика стали синхронизированы, и все прошло хорошо.

Смежные вопросы