我应该为RS服务的javax.json包安装什么OSGi包?
我有一个错误:
ServletRequest.getRemoteAddr()
我安装的JSON包:
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)
MOXy包:
JSR 353 (JSON Processing) Default Providerorg.glassfish.javax.json
Symbolic Name org.glassfish.javax.json
Version 1.0.4
Bundle Location initial@reference:file:plugins/org.glassfish.javax.json_1.0.4.jar
带导入:
javax.json;分辨率:=可选
看起来一切都应该正常,但事实并非如此。 MoXy没有得到javax.json依赖项。怎么了?错误的捆绑版本?错误的装货单?我需要做些什么才能让它们发挥作用?
答案 0 :(得分:1)
似乎是Equinox如何解决可选包导入的一般问题。
MoXy包在JSon包之前加载,因此javax.json包不可用。由于该引用是可选的,因此已经解决了这个问题。 as'未提供',并且在导入json包后Equinox没有重新解析它们。
解决方案:
1)影响安装顺序。
或
2)将Moxy的起始等级设置为更高的值,然后设置为JSon。