当前位置: 首页 > 知识库问答 >
问题:

OpenDaylight OSGi即使在安装RDF4J包之后也找不到RDF4J类

梁宪
2023-03-14

如果我只将RDF4J与Maven一起使用(没有OSGi容器),我就能够利用RDF4J提供的所有类。但是当我将RDF4J与OpenDaylight一起使用时,我使用过RDF4J类的包由于未满足的需求而无法启动。我使用IntelliJ思想,创建了一个带有OpenDaylight原型的新项目,groupId:org.OpenDaylight.Controller,artifactid:opendayLight-startup-archetype,version: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,然后按功能安装功能:install命令)

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

  <dependency>
      <groupId>org.eclipse.rdf4j</groupId>
      <artifactId>rdf4j-runtime-osgi</artifactId>
      <version>2.2.2</version>
  </dependency>
    public void init() {
    LOG.info("RdfTestProvider Session Initiated");
    Repository rep = new SailRepository(new MemoryStore());
    rep.initialize();
    LOG.info("Repo successfully initialized");
}

我认为问题是RDF4J包没有安装。我尝试了不同的方法来安装它,但没有一个有效(安装第三方非OSGi包)

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

共有1个答案

朱睿
2023-03-14

好吧,我现在能用了。我手动安装了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

然后启动bundle,在bundle:start中使用了RDF4J。后来,我将所有这些安装说明包含在我正在开发的特性下的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>
 类似资料:
  • https://github.com/thtrieu/darkflow 在Ubuntu 20.04 我认为我的flow文件有问题,所以我试图通过以下代码重建构建文件 这就是我得到的。 设置。py:6:弃用警告:imp模块已弃用,取而代之的是importlib;有关导入imp运行build_ext building“暗流”的替代用途,请参阅模块文档。cython_utils。nms的扩展名x86_6

  • 请帮我解决这个问题,谢谢

  • 我在kafka connect连接器中安装了运行confluent hub安装的JDBC连接器——没有提示confluent Inc/kafka connect JDBC:10.2.5,但当我尝试使用实现新接收器时,出现以下错误:找不到任何实现连接器且名称与io匹配的类。汇合的。连接jdbc。JdbcSinkConnector 我想用的水槽 我正在使用confluentinc/cp kafka c

  • 我正在使用 PyCharm 并且在导入模块时遇到问题,当我尝试运行应用程序并对所有导入都获得“找不到模块”时,我设置了一个 venv 并通过 pip install -r 导入了依赖项。如果我在 PyCharm 中打开一个终端并执行 pip 列表,则会列出所有必需的模块 此外,PyCharm 可以归档模块 - 我可以在键入模块名称时执行完成。我还能尝试什么?

  • 未能解析配置“:classpath”的所有依赖项。找不到org.jetbrains.kotlin:kotlin-gradle-plugin:1.0.0-release-1038。在以下位置搜索:https://repo1.maven.org/maven2/org/jetbrains/kotlin/kotlin-gradle-plugin/1.0.0-release-1038/kotlin-grad

  • 问题内容: 添加此内容以供他人参考,因为如果存在这样的答案,那将节省我10分钟。 我尝试使用ubuntu 14.0LTS virtualbox安装Docker 但是,当我尝试运行docker时,出现以下错误 为什么Ubuntu看不到Docker? 问题答案: Ubuntu软件包实际上是指GUI应用程序,而不是我们要寻找的最受欢迎的DevOps工具。 ===更新(感谢@Scott Stensland