У меня есть некоторые проблемы с использованием Джексон 2.1 в среде OSGi, когда десериализации класса, который так:Джексон десериализации пользовательских классов в среде OSGi
ObjectMapper mapper = new ObjectMapper();
User user = mapper.readValue(new File("user.json"), User.class);
class User {
public Class clazz = org.example.MyClass.class;
}
Потому что Джексон находится в другой связке как мои пользовательские классы я хочу для десериализации я часто получаю java.lang.ClassNotFoundException
- обычно на MyClass1 или MyClass2.
Я проследил его до класса com.fasterxml.jackson.databind.util.ClassUtil
, который использует Class.forName(..)
для извлечения класса для десериализации. Из-за разных классов-загрузчиков OSGI он видит только классы JRE и Jackson, но не мои пользовательские классы.
Есть ли простой способ заставить Джексон найти все необходимые пользовательские классы (у меня их десятки), например, добавив класс-загрузчик?
Вы экспортируете пакет, в котором находится ваш класс? –
Да, пакет экспортируется, но это не имеет значения, поскольку пакет Jackson не импортирует его ... – Robert