>我使用芝麻依赖项创建了一个应用程序:
<dependency>
<groupId>org.openrdf.sesame</groupId>
<artifactId>sesame-runtime</artifactId>
<version>2.7.5</version>
</dependency>
<dependency>
<groupId>org.openrdf.sesame</groupId>
<artifactId>sesame-repository-sail</artifactId>
<version>2.7.5</version>
</dependency>
<dependency>
<groupId>org.openrdf.sesame</groupId>
<artifactId>sesame-sail-memory</artifactId>
<version>2.7.5</version>
</dependency>
它在Spring IDE中使用集成的Tomcat运行时工作。 我将其部署到Tomcat 7中,但是在访问我在代码中使用的方法之一时出现以下错误:(同样的事情在Spring中有效)
java.lang.AbstractMethodError: org.openrdf.repository.sail.SailRepositoryConnection.begin()V at org.openrdf.repository.event.base.NotifyingRepositoryConnectionWrapper.begin(NotifyingRepositoryConnectionWrapper.java:272) at org.openrdf.repository.manager.SystemRepository.initialize(SystemRepository.java:88) at org.openrdf.repository.manager.LocalRepositoryManager.createSystemRepository(LocalRepositoryManager.java:107) at org.openrdf.repository.manager.LocalRepositoryManager.createSystemRepository(LocalRepositoryManager.java:62) at org.openrdf.repository.manager.RepositoryManager.initialize(RepositoryManager.java:104) at com.mvc.API.StorageAPI.createNativeLocalRepository(StorageAPI.java:154)
在第 154 行,我有:Manager.initialize();
它来自:
文件数据Dir = 新文件(REPOSITORY_NAME);RepositoryManager Manager = new LocalRepositoryManager(dataDir);
RepositoryManager 是来自 Sesame 的一个抽象类,它有一个实现的方法 initialize(),LocalRepositoryManger 继承自它,但不覆盖方法 initialize()。我也尝试了Tomcat 6.0.37并将芝麻依赖项更改为2.7.6你知道为什么我会收到这个错误吗?
谢谢!
用于运行程序的编译代码与用于实际编译程序的代码不同时,AbstractMethodError 才会在运行时发生。
造成这种情况的一个常见原因是,您使用的 jar 库版本与实际运行程序的版本不同 - 可能是因为类路径上存在同一 jar 的两个版本,或者构建/运行设置中的其他一些不一致。
检查构建路径和/或运行时类路径是否不包含错误或重复的 jar 文件。如果您最近更改了 maven 依赖项,请确保重新生成编译时构建路径,例如,从命令行使用 'mvn eclipse:clean eclipse:eclipse',或使用 M2E 的刷新选项(如果您使用的是 Eclipse M2E 插件)。