ClassNotFound Исключение при попытке десериализации класса, созданного с использованием JavaAssist - PullRequest
0 голосов
/ 24 марта 2020

У меня есть приложение, которое работает на Tomcat / Jboss на распределенных серверах. Приложение запускается на основе master / slave.

Я использую JavaAssist для создания класса Dynami c. Мне нужно сначала сериализовать это, затем десериализовать его и затем получить доступ к методам этого класса в другом классе в другом пакете (OtherClass. java).

ClassPool pool = ClassPool.getDefault();
CtClass cc = pool.makeClass(className);

cc.setInterfaces(new CtClass[]{pool.get("java.io.Serializable")});

ClassLoader classLoader = OtherClass.class.getClassLoader();
pool.appendClassPath(new LoaderClassPath(classLoader));

//<<code to add methods to this class>>

return cc.toClass()

Поскольку это приложение работает на распределенном сервере, Я сериализировал класс, возвращаемый cc.toClass().

Когда я запускаю это на сервере приложений, при попытке десериализации я получаю ClassNotFound Исключение.

Похоже, classLoader не может найти класс, созданный cc .toClass () во время десериализации.

Какое изменение я должен сделать, чтобы classLoader нашел созданный класс от javaAssist (cc .toClass ())?

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