Я пытаюсь настроить динамическое соединение с базой данных. Для этого я использую 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]