2017-09-25 2 views
2

Wenn ich RDF4J mit nur Maven (kein OSGi-Container) verwende, kann ich alle von RDF4J bereitgestellten Klassen nutzen. Aber wenn ich RDF4J mit OpenDaylight verwende, wird das Paket, in dem ich RDF4J-Klassen verwendet habe, wegen nicht erfüllter Anforderungen nicht gestartet. Ich benutze IntelliJ Idea und ich erstellt ein neues Projekt mit OpenDaylight Urbild mit groupId: org.opendaylight.controller, artifactId: opendaylight-Startup-Urform, Version: 1.4.0-SNAPSHOT und Repository: https://nexus.opendaylight.org/content/repositories/opendaylight.snapshot/archetype-catalog.xmlOpenDaylight OSGi kann RDF4J-Klassen auch nach der Installation von RDF4J-Bundles nicht finden

Mein Paket ID-Gruppe: org.exmaple, Artifact ID: rdfTest, Version: 1.0-SNAPSHOT, ich verwende maven 3.3.9

Das Urbild erfolgreich kompiliert und ich bin in der Lage, alle Funktionen zu installieren. (./karaf/target/assembly/bin/karaf und dann Funktionen von Feature installieren: install-Befehl)

Aber wenn ich RDF4J Abhängigkeit in pom.xml in impl Ordner

<dependency> 
     <groupId>org.eclipse.rdf4j</groupId> 
     <artifactId>rdf4j-runtime-osgi</artifactId> 
     <version>2.2.2</version> 
    </dependency> 

und fügen Sie folgendes hinzufügen In RdfTestProvider.java in impl/src/main/java/org/beispiel/impl wird das Feature nicht installiert.

public void init() { 
    LOG.info("RdfTestProvider Session Initiated"); 
    Repository rep = new SailRepository(new MemoryStore()); 
    rep.initialize(); 
    LOG.info("Repo successfully initialized"); 
} 

Ich denke, das Problem ist, dass das RDF4J Bundle nicht installiert wird. Ich habe verschiedene Methoden versucht, es zu installieren, aber keine funktionierte (installing 3rd party non-osgi bundles)

Gibt es eine Möglichkeit, RDF4J mit OpenDaylight zu verwenden?

+0

Ich versuchte mit Apache Jena anstelle von RDF4J, aber hier lief ich auch in das gleiche Problem. Die Features werden installiert, aber die Bundles werden nicht installiert, sie verbleiben im Status "Resovled" und "Bundle: Headers" gibt den fehlenden Import (org.apache.jena.rfd.model) an. Es wäre eine große Hilfe, wenn irgendjemand sagen könnte, wie man irgendwelche dieser Werkzeuge benutzt. – Nitin

Antwort

1

Okay, ich habe es jetzt funktioniert. Ich habe das Paket rdf4j-runtime-osgi und andere erforderliche Abhängigkeiten manuell installiert. Dies sind die Bundles, die ich installiert habe:

bundle:install -s mvn:org.mapdb/mapdb/1.0.8 
bundle:install -s mvn:com.spatial4j/spatial4j/0.4.1 
bundle:install -s mvn:com.opencsv/opencsv/3.2 
bundle:install -s mvn:org.apache.httpcomponents/httpcore-osgi/4.4.6 
bundle:install -s mvn:org.apache.httpcomponents/httpclient-osgi/4.5.3 
bundle:install -s mvn:com.fasterxml.jackson.core/jackson-annotations/2.9.0 
bundle:install -s mvn:com.fasterxml.jackson.core/jackson-core/2.9.0 
bundle:install -s mvn:com.fasterxml.jackson.core/jackson-databind/2.9.0 
bundle:install -s mvn:ch.qos.logback/logback-core/1.2.2 
bundle:install -s mvn:org.slf4j/slf4j-api/1.7.25 
bundle:install -s mvn:ch.qos.logback/logback-classic/1.2.2 
bundle:install -s mvn:com.github.jsonld-java/jsonld-java/0.11.1 
bundle:install -s mvn:org.eclipse.rdf4j/rdf4j-runtime-osgi/2.2.2 

Und dann gestartet Bündel, in dem ich RDF4J mit Bundle verwendet hatte: Start. Später habe ich alle diese Installationsanweisungen in die features.xml-Datei im Feature-Ordner unter der Funktion, die ich entwickle, eingefügt, damit ich sie nicht jedes Mal manuell installieren muss.

<bundle><![CDATA[wrap:mvn:org.mapdb/mapdb/1.0.8$Bundle-Version=1.0.8&Bundle-SymbolicName=mapdb]]></bundle> 
    <bundle><![CDATA[wrap:mvn:com.spatial4j/spatial4j/0.4.1$Bundle-Version=0.4.1&Bundle-SymbolicName=spatial4j]]></bundle> 
    <bundle><![CDATA[wrap:mvn:com.opencsv/opencsv/3.2$Bundle-Version=3.2&Bundle-SymbolicName=opencsv]]></bundle> 
    <bundle><![CDATA[wrap:mvn:org.apache.httpcomponents/httpcore-osgi/4.4.6$Bundle-Version=4.4.6&Bundle-SymbolicName=httpcore-osgi]]></bundle> 
    <bundle><![CDATA[wrap:mvn:org.apache.httpcomponents/httpclient-osgi/4.5.3$Bundle-Version=4.5.3&Bundle-SymbolicName=httpclient-osgi]]></bundle> 
    <bundle><![CDATA[wrap:mvn:com.fasterxml.jackson.core/jackson-annotations/2.9.0$Bundle-Version=2.9.0&Bundle-SymbolicName=jackson-annotations]]></bundle> 
    <bundle><![CDATA[wrap:mvn:com.fasterxml.jackson.core/jackson-core/2.9.0$Bundle-Version=2.9.0&Bundle-SymbolicName=jackson-core]]></bundle> 
    <bundle><![CDATA[wrap:mvn:com.fasterxml.jackson.core/jackson-databind/2.9.0$Bundle-Version=2.9.0&Bundle-SymbolicName=jackson-databind]]></bundle> 
    <bundle><![CDATA[wrap:mvn:ch.qos.logback/logback-core/1.2.2$Bundle-Version=1.2.2&Bundle-SymbolicName=logback-core]]></bundle> 
    <bundle><![CDATA[wrap:mvn:org.slf4j/slf4j-api/1.7.25$Bundle-Version=1.7.25&Bundle-SymbolicName=slf4j-api]]></bundle> 
    <bundle><![CDATA[wrap:mvn:ch.qos.logback/logback-classic/1.2.2$Bundle-Version=1.2.2&Bundle-SymbolicName=logback-classic]]></bundle> 
    <bundle><![CDATA[wrap:mvn:com.github.jsonld-java/jsonld-java/0.11.1$Bundle-Version=0.11.1&Bundle-SymbolicName=jsonld-java]]></bundle> 
    <bundle><![CDATA[wrap:mvn:org.eclipse.rdf4j/rdf4j-runtime-osgi/2.2.2$Bundle-Version=2.2.2&Bundle-SymbolicName=rdf4j-runtime]]></bundle> 
Verwandte Themen