Я пытаюсь:
1) Загрузить интерфейс и класс реализации из заданного местоположения файла
2) Создайте объект Proxy с отражением, соответствующим интерфейсу, и направит все вызовы в класс реализации
Это позже используется для тестирования с использованием JUnit.
Проблема:
Тем не менее у меня возникают проблемы при попытке создать объект прокси. Я получаю исключение:
java.lang.IllegalArgumentException: interface Testing.Testable is not visible from class loader
...at Core.ProxyFactory.createProxy(ProxyFactory.java:26)
Рассматриваемая строка выглядит следующим образом:
Object obj = Proxy.newProxyInstance(implementationClass.getClassLoader(), new Class[]{interfaceClass}, forwarder);
Класс загружается правильно?
Я загружаю классы, которые мне нужны, используя URLClassLoader. Фрагмент этого выглядит следующим образом:
URL url = new File(path).toURI().toURL();
URL[] urlList = {url};
// Create loader and load
ClassLoader classLoader = new URLClassLoader(urlList);
Class loadedClass = classLoader.loadClass (classname);
return loadedClass;
Однако это правильно? Этот фрагмент повторяется для каждого файла класса, и поэтому я считаю, что каждый раз, когда создается новый загрузчик классов. Может ли это быть причиной моей проблемы? Как я могу решить эту проблему?
Заранее благодарим за любую помощь, которую вы можете оказать