2014-09-15 3 views
1

В WAS-8.0/8.5, как я могу подтвердить, что все .jars/classes загружаются сервером?отслеживание загруженных классов из .EAR/.WAR

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

+0

Если вы хотите, чтобы классы загружались, вы можете использовать консоль администратора WAS, чтобы увидеть его: Устранение неполадок-> Средство просмотра загрузчика классов-> выберите приложение app-> pick WAR/EJB. Примечание. Необходимо включить службу просмотра загрузчика классов. Кроме того, пожалуйста, покажите трассировку стека и структуру EAR с информацией, где находится этот класс (в утилите JAR/WAR/EJB JAR). –

+0

В WAS-8.5, Поиск и устранение неисправностей-> Функция просмотра загрузчика класса недоступна. Он имеет диагностическую службу трассировки/протоколирование и отслеживание /Изменение уровней подробных сведений о журнале/доступа к NCSA и регистрации ошибок HTTP . Я включил функцию дополнительных свойств -> Служба просмотра загрузчика классов. –

+0

Ниже приведена структура .EAR - DummyPortal.EAR/lib, DummyPortal.EAR/lib/Counter.jar, DummyPortal/DummyWar.WAR, DummyPortal/DummyWar/MyJsp.jsp В «MyJsp.jsp» я получаю доступ к классу из «Counter.jar», и я получаю исключение «NoClassDefFoundError». Не уверен, почему он не ссылается на «Counter.jar». Будет ли это ошибкой в ​​WAS- 8.5? –

ответ

0

Вы можете:

  • положить counter.jar файл в WEB-INF/lib папку вашего war если модуль конкретно,
  • положить counter.jar в lib папку ear, если общий многие модули
  • добавить его в MANIFEST.MF файл, либо в пути Magic Wand описанном или если вы не имеете Eclipse, просто добавьте следующее в файл:

Class-path: counter.jar

+0

Спасибо Газ для ответа.Итак, я последовал за предложениями «Волшебная палочка» и теперь .JSP может отсылать «AlphabetCounter.class» из «Counter.jar». Но теперь «AlphabetCounter» не может найти Class: «CounterConstants», который также присутствует в «Counter.jar». Кажется, что «AlphabetCounter» не смотрит в «Counter.jar», для «CounterConstants». Нужно ли добавлять следующую запись в файл манифеста «Counter.jar»? Manifest-Entry: Class-Path: "." ? –

+0

Кроме того, в папке «lib» моего DummyPortal.EAR есть «Counter.jar». Потому что предполагается, что к нему будут доступны более 1 .WAR-модулей. –

+0

Ниже приведена короткая трассировка стека: Сообщение об ошибке: javax.servlet.ServletException: SRVE0320E: Фильтр [MyFilter] был найден, но произошел сбой в вводе ресурсов. Код ошибки: 500 Target Servlet: DispatcherServlet об ошибке газохода: com.ibm.wsspi.injectionengine.InjectionException: Не удается получить экземпляр для @Inject java.lang.reflect.Field.cm: javax.enterprise.inject.CreationException : java.lang.NoClassDefFoundError: com.mycompany.constants.CounterConstants (сбой инициализации) –

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