Динамическая загрузка классов на сервере jboss / Wildfly - PullRequest
0 голосов
/ 27 ноября 2018

Я пытаюсь настроить динамическое соединение с базой данных. Для этого я использую Java-отражение. Я загружаю jar-файл динамически, используя URLClassLoader , а затем обращаюсь к методу и загружаю класс через загрузчик.Это прекрасно работает для меня, когда я запускаю свое приложение с использованием tomcat, но когда я запускаю его с помощью сервера wildfly, я не могу подключиться к базе данных.

Вот мой код, который я пытаюсь выполнить.

URLClassLoader loader = (URLClassLoader) ClassLoader.getSystemClassLoader();
Method method;
Class<?> classToLoad = null;

method = URLClassLoader.class.getDeclaredMethod("addURL", URL.class);

method.setAccessible(true);
method.invoke(loader, new File(jarFileLocation).toURI().toURL());

classToLoad = Class.forName(classNameToLoad, true, loader);

После выполнения вышеуказанного шага, когда я выполняю следующий код:

Class.forName(classNameToLoad);

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

Ошибка StackTrace заключается в следующем:

java.lang.ClassNotFoundException: com.xyz.xyzDriver from [Module "myModule.war" from Service Module Loader]
...