Почему Eclipse пропускает строки, когда я отлаживаю JBoss? - PullRequest
4 голосов
/ 03 июня 2010

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

@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, она переходит к концу метода. Половина кода никогда не выполняется .. ??? У меня вопрос почему. Я предполагаю, что мой источник плохо привязан к реальному исполняемому коду. Но как мне это изменить?

Спасибо.

Ответы [ 3 ]

5 голосов
/ 03 июня 2010

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

1 голос
/ 27 ноября 2012

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

0 голосов
/ 01 апреля 2014

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

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

...