Arhn - архитектура программирования

Путь к классам для плагинов jenkins

У меня есть jenkins с установленным плагином openid. Я пытаюсь пройти аутентификацию через openid, но получаю веб-страницу с жалобами на java.lang.NoClassDefFoundError: org/openid4java/util/OpenID4JavaDOMParser.

Отсутствующий класс содержится в банке, расположенной по адресу «plugins/openid/WEB-INF/lib/».

Почему Дженкинс не может загрузить этот класс?

Любые идеи, как отлаживать? (Файл журнала не дает никакой дополнительной информации, кроме NoClassDefFoundError.)

Обновление: после символической ссылки jar на «war/WEB-INF/lib» Дженкинс может получить доступ к классу. Похоже, что jar-файлы в плагинах просто игнорируются, но, согласно документации, они должны быть доступным.

10.03.2013

  • Мне удалось заставить плагин работать уродливым обходным путем, добавив еще две банки в war/WEB-INF/lib. - Вопрос все еще актуален. 11.03.2013

Ответы:


1

Это зависит от того, какой загрузчик классов пытается загрузить класс, если он инициализируется какой-либо библиотекой или обнаружением, он может использовать загрузчик классов Thread вместо загрузчика классов вашего плагина, который обычно представляет собой ClassicPluginStrategy$AntClassLoader2.

У вас может быть возможность передать загрузчик классов или создать экземпляр напрямую. У меня была такая же проблема с jax-rs, и я исправил ее таким образом.

https://github.com/carlossg/KubernetesAPIJavaClient/blob/c6082e3/src/main/java/com/github/kubernetes/java/client/v2/RestFactory.java#L66

26.01.2015
Новые материалы

Коллекции публикаций по глубокому обучению
Последние пару месяцев я создавал коллекции последних академических публикаций по различным подполям глубокого обучения в моем блоге https://amundtveit.com - эта публикация дает обзор 25..

Представляем: Pepita
Фреймворк JavaScript с открытым исходным кодом Я знаю, что недостатка в фреймворках JavaScript нет. Но я просто не мог остановиться. Я хотел написать что-то сам, со своими собственными..

Советы по коду Laravel #2
1-) Найти // You can specify the columns you need // in when you use the find method on a model User::find(‘id’, [‘email’,’name’]); // You can increment or decrement // a field in..

Работа с временными рядами спутниковых изображений, часть 3 (аналитика данных)
Анализ временных рядов спутниковых изображений для данных наблюдений за большой Землей (arXiv) Автор: Рольф Симоэс , Жильберто Камара , Жильберто Кейрос , Фелипе Соуза , Педро Р. Андраде ,..

3 способа решить квадратное уравнение (3-й мой любимый) -
1. Методом факторизации — 2. Используя квадратичную формулу — 3. Заполнив квадрат — Давайте поймем это, решив это простое уравнение: Мы пытаемся сделать LHS,..

Создание VR-миров с A-Frame
Виртуальная реальность (и дополненная реальность) стали главными модными терминами в образовательных технологиях. С недорогими VR-гарнитурами, такими как Google Cardboard , и использованием..

Демистификация рекурсии
КОДЕКС Демистификация рекурсии Упрощенная концепция ошеломляющей О чем весь этот шум? Рекурсия, кажется, единственная тема, от которой у каждого начинающего студента-информатика..