Я пытаюсь использовать Ice-клиент в контексте OSGi.Работа сервера и минимального примера клиента в среде, отличной от OSGi, работает нормально.С клиентом в среде OSGi я получаю следующее исключение:
com.zeroc.Ice.NoValueFactoryException
reason = "no value factory found and compact format prevents slicing (the sender should use the sliced format instead)"
type = "::MyModule::Knowledge::CMKnowledge"
Однако я не уверен на 100%, если среда выполнения OSGi имеет значение здесь.Файл Slice выглядит следующим образом:
module MyModule{
module Knowledge{
class KnowledgePart{
string value;
}
class FMKnowledge extends KnowledgePart{}
class CMKnowledge extends KnowledgePart{}
interface IKnowledge{
void sendKnowledge(KnowledgePart knowledge);
FMKnowledge getFMKnowledge();
CMKnowledge getCMKnowledge();
}
}
}
Что означает это исключение в этом контексте и как его исправить?Я уже пытался установить ["format: sliced"] вместо неявно используемого компактного формата.