ユーザーに公開するインターフェイスを (他の多くのクラスと共に) 含むサーブレット プロジェクトがあります。
ユーザーは、提供されたインターフェイスを実装する独自のクラスを (.class ファイルの形式で) コンパイルし、プロジェクトが認識しているフォルダーに配置できます。サーブレットが開始すると、URLClassLoader を使用して、そのフォルダー内のすべての .class ファイルをロードします。(そのため、ユーザーは特定のイベントに参加できます。)
私が知る限り、クラスファイルは適切に配置され、ロードされています。ユーザーがコンパイルした .class ファイルをロードすると、ClassNotFoundException 例外がスローされますが、既にクラスパスにあるはずのインターフェイスについて不平を言っています。
Caused by: java.lang.ClassNotFoundException: com.company.project.OurInterface
at java.net.URLClassLoader$1.run(URLClassLoader.java:200)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319)
.class ファイルを動的にロードするとき、インターフェースが見つからない理由はありますか?