2015-01-19 3 views
0

Я пытаюсь отлаживать удаленное приложение, запущенное в профиле WebSphere Liberty через IntelliJ.Некоторые контрольные точки IntelliJ X'd во время удаленной отладки

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

Конкретная проблема, с которой я столкнулся, связана с java.io.ObjectInputStream. Когда я вызываю readObject() в поток, он выдает исключение. Я хотел бы узнать больше о том, какая конкретная часть моего потока плохая, поэтому я щелкнул правой кнопкой мыши readObject() и выбрал Go To>Implementation и попытался установить несколько точек останова в этом методе.

Когда я запускаю отладчик, эти контрольные точки появляются с X через точку останова вместо галочек, и это сообщение появляется в подсказке:

Warning: No executable code found at line 603 in class java.io.ObjectInputStream 

Но эта линия явно имеет этот код в нем:

return Class.forName(name, false, latestUserDefinedLoader()); 

Так что я действительно смущен, почему я получаю это сообщение об ошибке.

Любые предложения относительно того, как я могу либо иметь точку останова в пределах java.io.ObjectInputStream, либо иначе увидеть некоторые десериализуемые значения до того, как будет выбрано исключение.

+0

Возможно, у вас есть версия JVM в IntelliJ и Liberty. – Gas

+0

@Gas: у них работают разные ОС ... Liberty на RHEL, но IntelliJ на моей локальной машине Windows ... это может вызвать проблему? – ArtOfWarfare

+0

Запустите 'java -version' на обеих машинах. – Gas

ответ

2

Это обычно происходит, когда версия исходного кода, которую вы используете, не совпадает с версией, запущенной на удаленной JVM. Посмотрите версию jar в строке заголовка IntelliJ и убедитесь, что она такая же, как банку на Websphere.

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