Fuse ESB (karaf ベース) で MOXy を使用しています。JAXBContext の新しいインスタンスを作成しようとすると、エラーが発生します: プロパティ "eclipselink-oxm-xml" はサポートされていません。
ドメインクラスと同じパッケージに javax.xml.bind.context.factory=org.eclipse.persistence.jaxb.JAXBContextFactory という内容の jaxb.properties ファイルを配置しました。そして、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);
主な問題は、JUnit テストを使用して Eclipse からこの xml-bindings.xml プロパティを使用する関数を実行すると、すべて正常に動作しますが、OSGi 環境で実行してこの関数を呼び出すと、エラーが発生することです: プロパティ "eclipselink -oxm-xml」はサポートされていません。
OSGi で新しい jaxbcontext を作成できないのはなぜですか?
編集: System.getProperty("javax.xml.bind.context.factory") は org.eclipse.persistance.jaxb.JAXBContextFactory を返すので、jaxb プロパティ ファイルが読み込まれていると思います。