2017-02-07 3 views
2

Какой пакет OSGi следует установить для пакета javax.json для служб RS?Комплект OSGi с javax.json.JsonException для MoXy

Я получил сообщение об ошибке:

Caused by: java.lang.NoClassDefFoundError: javax/json/JsonException 
    at org.eclipse.persistence.internal.oxm.record.SAXUnmarshaller.getNewXMLReader(SAXUnmarshaller.java:209) 
    at org.eclipse.persistence.internal.oxm.record.SAXUnmarshaller.getXMLReader(SAXUnmarshaller.java:197) 
    at org.eclipse.persistence.internal.oxm.record.SAXUnmarshaller.unmarshal(SAXUnmarshaller.java:452) 
    at org.eclipse.persistence.internal.oxm.record.SAXUnmarshaller.unmarshal(SAXUnmarshaller.java:400) 
    at org.eclipse.persistence.internal.oxm.record.SAXUnmarshaller.unmarshal(SAXUnmarshaller.java:741) 
    at org.eclipse.persistence.internal.oxm.XMLUnmarshaller.unmarshal(XMLUnmarshaller.java:649) 
    at org.eclipse.persistence.jaxb.JAXBUnmarshaller.unmarshal(JAXBUnmarshaller.java:349) 
    at org.eclipse.persistence.jaxb.rs.MOXyJsonProvider.readFrom(MOXyJsonProvider.java:668) 

JSON расслоением Я установил:

JSR 353 (JSON Processing) Default Providerorg.glassfish.javax.json 
Symbolic Name org.glassfish.javax.json 
Version 1.0.4 
Bundle Location [email protected]:file:plugins/org.glassfish.javax.json_1.0.4.jar 

Moxy расслоение:

EclipseLink MOXyorg.eclipse.persistence.moxy 
Symbolic Name org.eclipse.persistence.moxy 
Version 2.6.4.v20160829-44060b6 
Bundle Location [email protected]:file:plugins/org.eclipse.persistence.moxy_2.6.4.v20160829-44060b6.jar 

с импортом:

javax.json; resolution:=optional

Похоже, все должно работать нормально, но это не так. MoXy не получает зависимости javax.json. Что не так? Неверная версия пакета? Неверный порядок загрузки? Что мне нужно сделать, чтобы заставить их работать?

ответ

1

Это, как представляется, общая проблема с тем, как Equinox разрешает импорт дополнительных пакетов.

Пакет MoXy был загружен перед пакетом JSon, поэтому пакет javax.json был недоступен. Поскольку ссылка была необязательной, она была «разрешена» как «не предоставлена», и Equinox не повторно разрешила их после импорта json-пакета.

Решение:

1) Влияние на порядок установки.

или

2) Установить уровень запуска для Moxy к более высокому значению затем JSon.

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