Domino 9 Обновление сайта класса osgi не найдено - PullRequest
0 голосов
/ 25 марта 2019

Я пытаюсь использовать Updatesite.nsf для развертывания jar на тестовом сервере. Я вижу это в этом случае плагин драйвера jdbc на консоли сервера с помощью команды http osgi ss. Но когда я его использую, я получаю исключение java.lang.ClassNotFoundException com.mysql.jdbc.driver. Что я пропускаю или делаю неправильно. Спасибо

1 Ответ

1 голос
/ 25 марта 2019

Непосредственный ответ заключается в том, что код, вызывающий Class.forName, должен так или иначе иметь драйвер MySQL в своем загрузчике классов, который по умолчанию не будет иметь Java XPage или in-NSF.

Чтобы расширить это немного:

Если вы пытаетесь вызвать его из кода XPage или Java в NSF, он должен быть частью библиотеки XPages из другого плагина, который, в свою очередь, зависит и повторно экспортирует плагин драйвера.

Если вы пытаетесь вызвать его из другого плагина, этот другой плагин должен иметь запись Require-Bundle или Import-Package для его ввода.

Класс будет доступен для NSF по умолчанию, если вы вставите его в jvm/lib/ext, хотя это, по общему признанию, отбрасывает тонкости развертывания на основе OSGi.

Причина, по которой он работает для поддержки XPages JDBC, заключается в том, что упакованные плагины, созданные мастером в Designer, включают специальную точку расширения для предоставления класса драйвера для кода ExtLib, который его хочет, но они не делают его автоматически доступным в самих приложениях XPages.

...