В моей среде OSGi я пытаюсь предварительно загрузить драйвер базы данных для дальнейшего использования. Обычно это можно сделать так:
Class.forName("com.mysql.jdbc.Driver");
После этого можно создать соединение. Однако, если я использую это в OSGi под Феликсом, он говорит, что класс не может быть найден (ClassNotFoundException
) и соединение не может быть создано. Но когда я делаю что-то подобное (try-catch
опущено):
com.mysql.jdbc.Driver d = new com.mysql.jdbcDriver
Class.forName("com.mysql.jdbc.Driver");
Тогда все работает нормально и соединение создается. Однако это не очень красиво, потому что класс драйвера не может быть заменен.
Есть ли способ загрузить класс первым методом? Я предполагаю, что я должен предоставить правильный загрузчик классов. Но откуда я это взял?
Драйвер MySQL предоставляется в виде пакета оболочки OSGi.