Ошибка начала набора данных Jena TDB () - PullRequest
0 голосов
/ 07 июня 2018

Я хочу использовать Jena TDB в проекте.Вот что я добавил в своем POM:

<dependency>
    <groupId>org.apache.jena</groupId>
    <artifactId>apache-jena-libs</artifactId>
    <version>3.7.0</version>
    <type>pom</type>
</dependency>

Это мой импорт, связанный с jena:

import org.apache.jena.query.*;
import org.apache.jena.tdb.TDBFactory;

Интересно, что код компилируется, и все, кажется, в порядке.Я даже могу создать набор данных и читать из него.

Dataset dataset = TDBFactory.createDataset(repoLocation);

Поскольку я пишу многопоточное приложение, я вызываю метод begin, как рекомендовано в документации :

dataset.begin(ReadWrite.READ);

Что приводитна:

Exception in thread "main" java.lang.AbstractMethodError: Class "org.apache.jena.tdb.transaction.DatasetGraphTransaction" does not implement the requested method

Я ценю вашу помощь!

1 Ответ

0 голосов
/ 07 июня 2018

AbstractMethodError обычно означает, что на пути вашего класса есть несоответствующие JAR-файлы.См. Ошибка абстрактного метода для некоторых обсуждений и связанных ссылок на эту тему.

Вам необходимо проверить свои зависимости и среду, чтобы убедиться, что у вас нет разных версий во время компиляции и во время выполнения.time

mvn dependency:tree, запущенный в вашем проекте, распечатает дерево зависимостей, которое должно отображаться, если у вас есть несколько версий библиотек Jena в настройках вашего проекта Maven.

В зависимости от того, как выУпаковывая и вызывая ваш код, вы, вероятно, также захотите проверить, как создается путь к классам для среды выполнения и как упаковывается ваше приложение (особенно если вы используете плагин Maven Shade или иным образом создаете uber-jar).Без каких-либо подробностей трудно дать конкретный совет.

...