Непосредственный ответ заключается в том, что код, вызывающий 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.