jena-osgi 3.0.1 ModelFactory.createDefaultModel() wirft eine ExceptionInInitializerError, wenn wir den folgenden Code in einem JUNIT (4,11) -Umgebung in Eclipse ausführen:Jena-osgi 3.0.1 ExceptionInInitializerError processGlobalSystemProperties
// Convert the XML to RDF model
StringReader stringReader = new StringReader(xml);
Model model = ModelFactory.createDefaultModel();
model.read(stringReader, null, RDFLanguages.RDFXML.getLabel());
Der Stapel Spur ist die folgende:
java.lang.ExceptionInInitializerError
...
Caused by: java.lang.NullPointerException
at org.apache.jena.tdb.sys.EnvTDB.processGlobalSystemProperties(EnvTDB.java:33)
at org.apache.jena.tdb.TDB.init(TDB.java:250)
at org.apache.jena.tdb.sys.InitTDB.start(InitTDB.java:29)
at org.apache.jena.system.JenaSystem.lambda$init$40(JenaSystem.java:114)
at java.util.ArrayList.forEach(ArrayList.java:1249)
at org.apache.jena.system.JenaSystem.forEach(JenaSystem.java:179)
at org.apache.jena.system.JenaSystem.forEach(JenaSystem.java:156)
at org.apache.jena.system.JenaSystem.init(JenaSystem.java:111)
at org.apache.jena.rdf.model.ModelFactory.<clinit>(ModelFactory.java:49)
... 25 more
der gleiche Code funktioniert, wenn wir jena-tdb 3.0.1 statt jena-osgi 3.0.1 verwenden. Wir müssen unseren Code in einer OSGi-Umgebung (Servicemix) ausführen, daher ist es wichtig, dass das OSGi-Stück funktioniert.
Ich habe ähnliche Fehler in Stack Overflow gemeldet, aber keiner von ihnen hat unser Problem gelöst. Ich denke, vielleicht fehlt uns eine Bibliothek? Dies sind die Gläser wir mit Maven importieren:
- org.apache.jena: jena-osgi: 3.0.1
- org.apache.servicemix.bundles: org.apache.servicemix.bundles.xerces: 2.11.0_1
- com.github.andrewoma.dexx: Dexx-Sammlungen: 0.2
- Gemeinen-cli: Common-cli: 1.3
- Common-Codec: Common-Codec: 1.6
- Common-io: commons-io: 2.4
- org.apache.httpcompone nts: Httpclient-Cache: 4.2.5
- xml-apis: xml-apis: 1.4.01
HINWEIS: haben wir versucht, Jena 3.1.0 OSGi und dass man funktioniert, aber die JSON- zu verwenden LD kommt komisch heraus, wenn junit in maven ausgeführt wird (die XML-Namespacepräfixe werden entfernt), funktioniert aber in Eclipse einwandfrei.
Mit JSON meinen Sie JSON-LD? Was haben sonst XML-Namespaces mit JSON zu tun? Sieht nach einem separaten Problem für das OSGi-Problem für mich aus. – AndyS
https://issues.apache.org/jira/browse/JENA-1164 ist die Lösung für OSGi-Probleme. Dies beinhaltete Upgrades auf Dexx-Kollektionen. – AndyS
Ja, ich meinte JSON-LD und ja, es ist ein separates Problem. Ich fügte diesen "Hinweis" hinzu, nur damit klar war, dass wir andere Versionen ausprobiert haben und die Dinge mit anderen Versionen semi-arbeiten. – Thirlan