【问题标题】:OpenDaylight OSGi not able to find RDF4J classes even after installing RDF4J bundles即使在安装 RDF4J 包之后,OpenDaylight OSGi 也无法找到 RDF4J 类
【发布时间】:2018-03-06 01:49:00
【问题描述】:

如果我只使用带有 Maven(没有 OSGi 容器)的 RDF4J,我就可以利用 RDF4J 提供的所有类。但是当我将 RDF4J 与 OpenDaylight 一起使用时,我使用 RDF4J 类的捆绑包由于不满足要求而无法启动。 我正在使用 IntelliJ Idea,并使用 OpenDaylight 原型创建了一个新项目,其中 groupId:org.opendaylight.controller、artifactId:opendaylight-startup-archetype、版本:1.4.0-SNAPSHOT 和存储库:https://nexus.opendaylight.org/content/repositories/opendaylight.snapshot/archetype-catalog.xml

我的包的组 ID:org.exmaple, 工件 ID:rdfTest, 版本:1.0-SNAPSHOT, 我正在使用 maven 3.3.9

原型编译成功,我可以安装所有功能。 (./karaf/target/assembly/bin/karaf 然后通过 feature:install 命令安装功能)

但是当我在 impl 文件夹中的 pom.xml 中添加 RDF4J 依赖项时

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

并在 impl/src/main/java/org/example/impl 的 RdfTestProvider.java 中添加以下内容,该功能不会安装。

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

我认为问题在于没有安装 RDF4J 包。我尝试了不同的方法来安装它,但都没有成功 (installing 3rd party non-osgi bundles)

有什么方法可以将 RDF4J 与 OpenDaylight 一起使用?

【问题讨论】:

  • 我尝试使用 Apache Jena 而不是 RDF4J,但在这里我也遇到了同样的问题。功能已安装,但捆绑包未安装,它们保持已解决状态,并且 bundle:headers 缺少导入 (org.apache.jena.rdf.model)。如果有人知道如何使用这些工具,那将是一个很大的帮助。

标签: maven osgi opendaylight maven-bundle-plugin rdf4j


【解决方案1】:

好的,我现在已经让它工作了。我手动安装了 rdf4j-runtime-osgi 包和其他所需的依赖项。这些是我安装的包:

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

然后开始使用 RDF4J 和 bundle:start 的 bundle。后来,我将所有这些安装说明都包含在我正在开发的功能下的 features 文件夹中的 features.xml 文件中,这样我就不必每次都手动安装它们。

    <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>

【讨论】:

    猜你喜欢
    • 2013-10-24
    • 1970-01-01
    • 2020-05-27
    • 1970-01-01
    • 1970-01-01
    • 2018-05-12
    • 2018-04-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多