0

我有一个 Java 动态 Web 项目,我使用 Jena 和 D2RQ 库。当我将项目作为“Java 应用程序”启动时,我遇到了这个问题:

线程“主”java.lang.IncompatibleClassChangeError 中的异常:在 java.lang.ClassLoader.defineClass(Unknown Source) 在 java.security.SecureClassLoader.defineClass(Unknown Source) 的 java.lang.ClassLoader.defineClass1(Native Method) 实现类在 java.net.URLClassLoader.defineClass(Unknown Source) at java.net.URLClassLoader.access$100(Unknown Source) at java.net.URLClassLoader$1.run(Unknown Source) at java.net.URLClassLoader$1.run(Unknown Source) ) 在 java.security.AccessController.doPrivileged(Native Method) 在 java.net.URLClassLoader.findClass(Unknown Source) 在 java.lang.ClassLoader.loadClass(Unknown Source) 在 sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source ) 在 de.fuberlin.wiwiss.d2rq.algebra 的 java.lang.ClassLoader.loadClass(Unknown Source)。CompatibleRelationGroup.addNodeRelation(CompatibleRelationGroup.java:53) 在 de.fuberlin.wiwiss.d2rq.algebra.CompatibleRelationGroup.groupNodeRelations(CompatibleRelationGroup.java:38) 在 de.fuberlin.wiwiss.d2rq.find.FindQuery.iterator(FindQuery.java: 78) 在 de.fuberlin.wiwiss.d2rq.jena.GraphD2RQ.graphBaseFind(GraphD2RQ.java:88) 在 com.hp.hpl.jena.graph.impl.GraphBase.find(GraphBase.java:240) 在 com.hp .hpl.jena.graph.compose.DisjointUnion.graphBaseFind(DisjointUnion.java:27) 在 com.hp.hpl.jena.graph.impl.GraphBase.find(GraphBase.java:240) 在 com.hp.hpl.jena .graph.impl.GraphBase.graphBaseFind(GraphBase.java:260) 在 com.hp.hpl.jena.graph.impl.GraphBase.find(GraphBase.java:257) 在 com.hp.hpl.jena.graph.query .SimpleQueryHandler.predicatesFor(SimpleQueryHandler.java:68) 在 com.hp.hpl.jena.graph.query。SimpleQueryHandler.predicatesFor(SimpleQueryHandler.java:47) 在 com.hp.hpl.jena.rdf.model.impl.ModelCom.listPredicates(ModelCom.java:751) 在 com.hp.hpl.jena.rdf.model.impl。 ModelCom.listNameSpaces(ModelCom.java:763) 在 com.hp.hpl.jena.xmloutput.impl.BaseXMLWriter.addNameSpaces(BaseXMLWriter.java:233) 在 com.hp.hpl.jena.xmloutput.impl.BaseXMLWriter.setupNamespaces( BaseXMLWriter.java:487) 在 com.hp.hpl.jena.xmloutput.impl.BaseXMLWriter.write(BaseXMLWriter.java:469) 在 MyPackage.MyClass.Mymethod(MyClass.java:118) 在 MyPackage.Test.main(Test .java:77)BaseXMLWriter.addNameSpaces(BaseXMLWriter.java:233) at com.hp.hpl.jena.xmloutput.impl.BaseXMLWriter.setupNamespaces(BaseXMLWriter.java:487) at com.hp.hpl.jena.xmloutput.impl.BaseXMLWriter.write( BaseXMLWriter.java:469) 在 MyPackage.MyClass.Mymethod(MyClass.java:118) 在 MyPackage.Test.main(Test.java:77)BaseXMLWriter.addNameSpaces(BaseXMLWriter.java:233) at com.hp.hpl.jena.xmloutput.impl.BaseXMLWriter.setupNamespaces(BaseXMLWriter.java:487) at com.hp.hpl.jena.xmloutput.impl.BaseXMLWriter.write( BaseXMLWriter.java:469) 在 MyPackage.MyClass.Mymethod(MyClass.java:118) 在 MyPackage.Test.main(Test.java:77)

“MyClass”类的第 118 行包含以下代码:

writer.write(d2rqModel, new OutputStreamWriter(out, "utf-8"),loader.getResourceBaseURI()); 使用 RDFWriter 编写器;

导入 com.hp.hpl.jena.rdf.model.RDFWriter;

为什么我有这个问题?

另外,不同项目中的同一个类也很好用!!!为什么?

4

2 回答 2

0

您已经更改并重新编译了该类,而没有重新编译依赖它的所有内容。做一个干净的构建。在此过程中,您可能会遇到一些编译器错误。

于 2014-04-11T10:03:23.380 回答
0

您可能添加了对编译器的理解不明确的依赖项。确认您没有相同类的重复依赖项。

于 2019-08-28T06:47:40.847 回答