2016-12-04 3 views
1

Я получаю следующее исключение, когда де-сериализует объект на сервере linux, в то время как он отлично работает на моем ПК с Windows.KryoException: не удается найти класс только для Linux

Исключение в потоке «основного» com.esotericsoftware.kryo.KryoException: Не удалось найти класс: CLASS_PATH

Объект сериализации и десериализовать только локально (сервер или ПК) Я проверил путь на сервере, и это то же самое, что и CLASS_PATH, с тем же самым верхним/нижним регистром.

+0

Скорее всего, ваши настройки ** CLASSPATH ** различаются для двух систем. Неважно, если переменная выглядит одинаково; дело в том, что настоящие классы в вашей системе должны быть там. Кроме того: это действительно сообщение об ошибке - жалобы на отсутствующий класс CLASS_PATH ?! – GhostCat

+0

Я просто не хочу представлять имена реальных классов/пакетов, поэтому я написал CLASS_PATH. Я использую инструменты git и maven для создания проекта, и настройки на обеих машинах одинаковы. Возможно ли, что проблема существует, потому что у меня есть одно имя класса в другом пакете? – user5069994

+0

Плохая идея; так как это путает. Вы могли бы использовать что-то вроде com.whatever.myproduct.mypacke.SomeClass как минимум. Но в любом случае, ваша проблема очевидна: один класс не ** существует ** в вашем CLASS_PATH в вашей Linux-системе. – GhostCat

ответ

2

У меня есть классы с одинаковыми именами классов, но в разных пакетах. Использование kryo регистрации этих классов решает проблему.

kryo.register (SomeClass.class);

Смежные вопросы