私は次のことを試みています:
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;
しかし、これは正しいですか?このスニペットはクラスファイルごとに繰り返されるため、新しいクラスローダーが作成されるたびに私は信じています。これが私の問題を引き起こしている可能性がありますか?どうすればこれを解決できますか?
あなたが与えることができるどんな助けにも前もって感謝します