我在保险丝ESB下使用MOXy(基于karaf)。在尝试创建JAXBContext的新实例时,我收到错误:不支持属性“eclipselink-oxm-xml”。
我已将jaxb.properties文件与内容放在一起:javax.xml.bind.context.factory = org.eclipse.persistence.jaxb.JAXBContextFactory与域类相同的包中。并且成功加载了xml-bindings文件。
Map<String, Object> properties = new Hashmap<>(1);
properties.put(JAXBContextProperties.OXM_METADATA_SOURCE, Utils.class.getResource("xml-bindings.xml").getPath());
JAXBContext jc = JAXBContext.newInstance(clazz, properties);
主要的问题是,当我运行使用来自eclipse和JUnit测试的xml-bindings.xml属性的函数时,一切正常,但是当我在OSGi环境中运行它并调用此函数时,我收到错误:属性“eclipselink-oxm-xml”不受支持。
所以也许有人可以给我线索,有什么不对,为什么它无法在OSGi中创建新的jaxbcontext?
编辑: System.getProperty(“javax.xml.bind.context.factory”)返回org.eclipse.persistance.jaxb.JAXBContextFactory,所以我猜jaxb属性文件已加载。