ClassNotFound Exception при попытке десериализации класса, созданного с помощью JavaAssist

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

Я использую JavaAssist для создания динамического класса. Мне нужно сначала сериализовать это, затем десериализовать, а затем получить доступ к методам этого класса в другом классе в другом пакете (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())?

0 ответов

Другие вопросы по тегам