Получение ClassNotFoundException при попытке настроить собственный диспетчер сеансов в virgo tomcat

Я использую сервер eclipse virgo со встроенным котом. Я хочу использовать собственный диспетчер сеансов, который я создал, и он присутствует в комплекте osgi. Я настроил пакет osgi как фрагмент, а пакет catalina является хостом фрагмента. Также в моем context.xml я настроил диспетчер сеансов, указав полное имя класса.

Проблема в том, что при запуске я получаю ClassNotFoundException для моего менеджера сеансов.

Я попытался добавить свою банку в папку lib и изменить config.ini, чтобы моя банка загружалась при запуске, но это не помогло.

В этом случае, что я должен сделать, чтобы мой класс был найден при запуске.


person Moiz Raja    schedule 16.01.2014    source источник


Ответы (2)


Вы можете использовать Команды оболочки Virgo, как описано в этом блоге для анализа проблем с загрузкой классов. Например, вы можете перечислить все пакеты, которые могут загрузить класс. Взгляните на часто задаваемые вопросы о Virgo. Как добавить импорт в сторонние пакеты, если это необходимо.

person Florian Waibel    schedule 20.01.2014

Включение отладки загрузчика классов помогло,

В файле configuration/config.ini добавьте следующее свойство

osgi.debug=configuration/equinox-debug.properties

В файле configuration/equinox-debug.properties добавьте следующие свойства:

org.eclipse.osgi/debug=true
org.eclipse.osgi/debug/loader=true

Теперь, когда вы перезапускаете контейнер, он выводит BundleClassLoader, который пытается загрузить ваш класс. Я хотел, чтобы мой пакет был добавлен как фрагмент к пакету, который загружал этот класс, поэтому, как только я выяснил, какой пакет загружал класс, я просто использовал его в качестве хоста фрагмента.

person Moiz Raja    schedule 22.01.2014