Некоторые классы не могут быть загружены Java ClassLoader - PullRequest
0 голосов
/ 07 марта 2019

Мы используем настроенный загрузчик классов для динамической загрузки внешних jar-файлов в наш сервис. Внешние файлы jar, такие как / tmp / external / example.jar , загружаются и перезаписываются из сети каждый день, и только после успешной загрузки файлов jar будет создан новый загрузчик классов, например:

    File tmp = new File("/tmp/external/example.jar");
    List<URL> classpathes = new ArrayList<URL>(Arrays.asList(((URLClassLoader)parent).getURLs()));
    classpathes.add(tmp.toURL());
    ClassLoader newClassLoader = new URLClassLoader(classpathes.toArray(new URL[0]), parent);

Проблема теперь в том, что некоторые классы могут быть загружены newClassLoader , в то время как некоторые выдают ClassNotFoundException при вызове Class.forName(clazzname, true, newClassLoader), даже если классы находятся в одном пакете. Все классы существуют, когда я загружаю их в основном тесте так же, как и служба, и файлы JAR хорошо отформатированы.

В чем проблема?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...