Мы разрабатываем веб-приложение с Rational Application Developer 7.5 (на основе Eclipse 3.4) для WebSphere Application Server 6.1. При проверке stacktraces на промежуточном сервере номера строк всегда указывают на начало методов, а не на фактическую строку. В локальной среде разработки (у каждого разработчика есть свой локальный запуск Websphere 6.1) все кажется идеальным.Номера строк в точке StackTrace для начала метода
В настройках Eclipse в Java> Компилятор> раздел Classfile Generation все проверено.
Развертывание осуществляется путем создания EAR-файла с использованием целевой цели RAD earExport
Ant (а не основной задачи ear
). Затем он переупаковывается, чтобы удалить ненужные файлы. Никакая явная компиляция не запускается - используются классы из рабочей области.
Как это может случиться, что эти сведения теряются? Является ли эта часть некоторой оптимизации Hotspot? Если да, может ли он быть отключен?
И как я могу вернуть правильные номера строк?
Хм, это действительно может быть точка. Стадия действительно версия iSeries V5R4M0. Я проверю форумы developerworks. Спасибо до сих пор (+1). – rudolfson
Да, JVM iSeries - это уникальный зверь, который работает совсем не так, как обычный JVM. Я уверен, вы заметили, как медленно первый пробег. Клиент, с которым я консультировался, в конечном итоге решил переместить сервер приложений на AIX-бокс, солома, которая сломала спину верблюда, была когда мы обнаружили ошибку в реализации JVM iSeries. Мы долго говорили с IBM о Java и iSeries и о будущем. Суть в том, что WebSphere используется в iSeries, который обычно используется для пакетов (JD Edwards), если вы выполняете индивидуальную разработку, вы ступаете туда, куда мало. Удачи! :) – RefuX