- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我收到错误
Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/xerces/util/XMLChar
at org.apache.jena.shared.impl.PrefixMappingImpl.checkLegal(PrefixMappingImpl.java:172)
当运行一个简单的 Jena 示例时,但我的 Maven pom.xml
文件中确实有这两个依赖项:
<dependency>
<groupId>org.apache.jena</groupId>
<artifactId>apache-jena-libs</artifactId>
<type>pom</type>
<version>3.6.0</version>
</dependency>
<dependency>
<groupId>xerces</groupId>
<artifactId>xercesImpl</artifactId>
<version>2.11.0</version>
</dependency>
我检查了可下载的 Jena 存档,其 lib
目录确实包含 Xerces 2.11.0 jar 文件,因此版本是正确的。
这里缺少什么?
更新:
AndyS 指出不需要依赖项,并且 NoClassDefFoundError
与更常见的 ClassNotFoundException
不同。
在没有依赖关系的情况下会发生错误。至于 NoClassDefFoundError
,不确定是什么原因造成的。我的代码非常简单:
String filename = "test.jsonld";
Model model = ModelFactory.createDefaultModel() ;
model.read(filename) ;
其中 test.jsonld
为
{
"@id": "http://store.example.com/",
"@type": "Store",
"name": "Links Bike Shop",
"description": "The most \"linked\" bike store on earth!"
}
包括异常的完整输出如下。我不确定如何开始解决此问题,有什么建议吗?
12:46:26,102 |-INFO in ch.qos.logback.classic.LoggerContext[default] - Could NOT find resource [logback.groovy]
12:46:26,102 |-INFO in ch.qos.logback.classic.LoggerContext[default] - Could NOT find resource [logback-test.xml]
12:46:26,102 |-INFO in ch.qos.logback.classic.LoggerContext[default] - Found resource [logback.xml] at [file:/C:/Users/E26638/git/aic-praise/target/classes/logback.xml]
12:46:26,103 |-WARN in ch.qos.logback.classic.LoggerContext[default] - Resource [logback.xml] occurs multiple times on the classpath.
12:46:26,104 |-WARN in ch.qos.logback.classic.LoggerContext[default] - Resource [logback.xml] occurs at [file:/C:/Users/E26638/git/aic-expresso/target/classes/logback.xml]
12:46:26,104 |-WARN in ch.qos.logback.classic.LoggerContext[default] - Resource [logback.xml] occurs at [file:/C:/Users/E26638/git/aic-praise/target/classes/logback.xml]
12:46:26,159 |-INFO in ch.qos.logback.classic.joran.action.ConfigurationAction - debug attribute not set
12:46:26,176 |-INFO in ch.qos.logback.core.joran.action.ConversionRuleAction - registering conversion word logxtracemsg with class [com.sri.ai.util.log.LogXTraceConverter]
12:46:26,176 |-INFO in ch.qos.logback.core.joran.action.AppenderAction - About to instantiate appender of type [ch.qos.logback.core.ConsoleAppender]
12:46:26,189 |-INFO in ch.qos.logback.core.joran.action.AppenderAction - Naming appender as [stdout]
12:46:26,251 |-INFO in ch.qos.logback.classic.joran.action.LoggerAction - Setting additivity of logger [com.sri.ai.grinder.helper.Trace] to false
12:46:26,252 |-INFO in ch.qos.logback.classic.joran.action.LevelAction - com.sri.ai.grinder.helper.Trace level set to TRACE
12:46:26,252 |-INFO in ch.qos.logback.classic.joran.action.LoggerAction - Setting additivity of logger [com.sri.ai.grinder.helper.Justification] to false
12:46:26,252 |-INFO in ch.qos.logback.classic.joran.action.LevelAction - com.sri.ai.grinder.helper.Justification level set to TRACE
12:46:26,252 |-INFO in ch.qos.logback.classic.joran.action.LevelAction - ROOT level set to DEBUG
12:46:26,252 |-INFO in ch.qos.logback.core.joran.action.AppenderRefAction - Attaching appender named [stdout] to Logger[ROOT]
12:46:26,253 |-INFO in ch.qos.logback.classic.joran.action.ConfigurationAction - End of configuration.
12:46:26,253 |-INFO in ch.qos.logback.classic.joran.JoranConfigurator@67b6d4ae - Registering current configuration as safe fallback point
12:46:26.258 [main] DEBUG Jena - Jena initialization
12:46:26.335 [main] DEBUG org.apache.jena.util.FileManager - Add location: LocatorFile
12:46:26.335 [main] DEBUG org.apache.jena.util.FileManager - Add location: ClassLoaderLocator
12:46:26.337 [main] DEBUG org.apache.jena.util.LocationMapper - Failed to find configuration: file:location-mapping.rdf;file:location-mapping.n3;file:location-mapping.ttl;file:etc/location-mapping.rdf;file:etc/location-mapping.n3;file:etc/location-mapping.ttl
12:46:26.337 [main] DEBUG org.apache.jena.util.FileManager - Add location: LocatorFile
12:46:26.338 [main] DEBUG org.apache.jena.util.FileManager - Add location: LocatorURL
12:46:26.338 [main] DEBUG org.apache.jena.util.FileManager - Add location: ClassLoaderLocator
12:46:26.343 [main] DEBUG o.a.j.r.s.stream.JenaIOEnvironment - Failed to find configuration: location-mapping.ttl;location-mapping.rdf;location-mapping.n3;etc/location-mapping.rdf;etc/location-mapping.n3;etc/location-mapping.ttl
Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/xerces/util/XMLChar
at org.apache.jena.shared.impl.PrefixMappingImpl.checkLegal(PrefixMappingImpl.java:172)
at org.apache.jena.shared.impl.PrefixMappingImpl.setNsPrefix(PrefixMappingImpl.java:72)
at org.apache.jena.shared.PrefixMapping.<clinit>(PrefixMapping.java:219)
at org.apache.jena.sparql.ARQConstants.<clinit>(ARQConstants.java:106)
at org.apache.jena.query.ARQ.init(ARQ.java:588)
at org.apache.jena.sparql.system.InitARQ.start(InitARQ.java:29)
at org.apache.jena.system.JenaSystem.lambda$init$2(JenaSystem.java:119)
at java.util.ArrayList.forEach(Unknown Source)
at org.apache.jena.system.JenaSystem.forEach(JenaSystem.java:194)
at org.apache.jena.system.JenaSystem.forEach(JenaSystem.java:171)
at org.apache.jena.system.JenaSystem.init(JenaSystem.java:117)
at org.apache.jena.rdf.model.ModelFactory.<clinit>(ModelFactory.java:49)
at com.sri.ai.praise.jdsonld.ReadJenaJSONLD.main(ReadJenaJSONLD.java:11)
Caused by: java.lang.ClassNotFoundException: org.apache.xerces.util.XMLChar
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
... 13 more
最佳答案
仅依赖于 org.apache.jena:apache-jena-libs:pom:3.6.0
的项目的 Maven 依赖项应如下所示:
[信息] org.apache.jena:jena-reports-version:jar:0.0.0-SNAPSHOT
[信息]\- org.apache.jena:apache-jena-libs:pom:3.6.0:编译
[信息] +- org.apache.jena:jena-tdb:jar:3.6.0:编译
[信息] |\- org.apache.jena:jena-arq:jar:3.6.0:编译
[信息] | +- org.apache.jena:jena-core:jar:3.6.0:编译
[信息] | | +- org.apache.jena:jena-iri:jar:3.6.0:编译
[信息] | | +- xerces:xercesImpl:jar:2.11.0:编译
[信息] | | |\- xml-apis:xml-apis:jar:1.4.01:编译
...
如果没有找到 xerces,则可能存在本地干扰。
关于java - Jena 在要求缺席 Xerces 的类(class)时失败,而 Xerces 2 已包含在内,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49716367/
我想用前缀来表示这个nt文件: . "a" . "b" . "c" . 我写入一个新的nt文件是: @prefix sp: . . "a" . "b" . "c"
我有一个名为 Modelling.owl 的 OWL 文件,它是使用 Protege 4.2 创建的。但是后来我必须通过使用 Jena 注册一些新的 Individual 和它的属性来修改它。例如我有
我正在尝试使用 Jena 写入本地免费的独立 GraphDB(版本 8.5.0)存储库。 我尝试过的 (1) 耶拿直接使用 我使用了这个 Jena 3.7.0 代码片段: String strInse
我无法在我的 Ontology 中表达以下情况: 假设我有四个人投票,投了四票(所以 vote 和 voter 之间存在一对一的映射)。人们可以投票赞成或反对。如果我知道三个人的投票结果,我应该能够推
我在我的项目中使用 Dbpedia,我想创建一个本地 sparql 端点,因为在线端点不可靠。我下载了数据转储(大型 NT 文件)并决定使用 Jena TDB。使用 NetBeans IDE,我使用输
我用这个java代码在jena中创建了一个模型 Model m = ModelFactory.createDefaultModel(); Resource a1 = m.createR
我有一个猫头鹰本体,我将它读入 Jena OntModel。然后我在运行时更新它。现在我想把它写回一个OWL 本体。我正在使用下面的代码: RDFWriter writer = model.getWr
我将 Jena 和 Fuseki 安装为服务使用 一个可靠的角色 gremid.fuseki . 而且我想自定义监听主机和监听端口。但是,我不知道。 也许我应该编辑$FUSEKI_BASE/confi
我正在对基于本体的上下文管理和基于流程的上下文管理进行性能分析。然而,为了创建与 PCM 案例研究类似的场景,我需要在推理过程中直接从 Jena SWRL 规则触发 Java 方法。我做了很多研究,但
我正在使用 SPARQL 查询查询整数结果: String qString = "SELECT (COUNT(?S) AS ?C) "+ "WHERE
关闭。这个问题是opinion-based .它目前不接受答案。 想改善这个问题吗?更新问题,以便可以通过 editing this post 用事实和引文回答问题. 8年前关闭。 Improve t
我无法找到一些使用 SWRL 和 Jena 的简单代码示例佩莱,或者至少使用 SWRL?我研究了 Pellet 文档中的一些示例,但没有关于使用 SWRL 的示例。网络上的大多数示例都不完整且令人困惑
我对 RDF 和 Jena 很陌生。我想将一个 .nt (N-TRIPLE) 文件加载到模型中。我试过 read(inputStream, "N-TRIPLE") 但没有帮助。 它抛出 org.apa
我成功地使用 Jena API 和 Eclipse 创建、修改、合并本体。我还在 Eclipse 中成功启动了 OWL 推理器和 Pellet 推理器。 现在我想了解如何使用 Jena API 在 E
我正在尝试使用 Jena 框架来编辑使用 Protoge 4.2 构建的现有本体。即更改属性值或添加个人或类别,然后进行推理。假设在本体中我们有这样的规则:hasAge(?p,?age)^swrlb:
我了解到您可以使用以下代码提取 rdf 文件并初始化为 jena 中的模型: DatasetAccessor accessor = DatasetAccessorFactory.createHTTP(
我目前正在开发一个项目,初始值为 .owl包含我们本体的基本模式的文件。我们使用 Jena API 加载此文件并对其执行不同的操作,例如添加本体类和个体。 我们寻求将系统迁移到三重存储,这意味着,而不
这是我的代码: public class FunctionalityCheckTest1 { InfModel infModel; Model model = ModelFactory
我使用Jena和TDB来存储RDF,我想对其进行一些推断。但是RDF数据很大,Jena的owl reasoner必须将所有数据加载到内存中。 所以我想找到一个可以推理而不将所有数据加载到内存中的推理器
我建立了一个使用SWRL规则进行推理的本体。当我在Protege中执行SQWRL查询时,它工作正常。问题是,当我想将Pellet与Jena一起使用时,Pellet似乎在查询中不包括SWRL规则。我像这
我是一名优秀的程序员,十分优秀!