2016-02-20 3 views
1

Мне нужно реализовать простое java-приложение для выполнения некоторых запросов на Seasame. Я хотел попробовать что-то простое для начала, но я не могу инициализировать репозиторий. Я после официального руководства и моя программа выглядит следующим образом:Sesame - репозиторий инициализации ошибок AbstractParserQuery не найден

public class HelloSesame { 

     public static void main(String[] args) { 

     File dataDir = new File("../../resources/test.ttl"); 
     Repository rep = new SailRepository(new NativeStore(dataDir)); 
     rep.initialize();  

     RepositoryConnection conn = rep.getConnection(); 
     //...omitted code 
     } 
     } 

и мой pom.xml

 <sourceDirectory>src</sourceDirectory> 
     <resources> 
     <resource> 
      <directory>src</directory> 
      <excludes> 
     <exclude>**/*.java</exclude> 
     </excludes> 
    </resource> 
    </resources> 
    <plugins> 
    <plugin> 
     <artifactId>maven-compiler-plugin</artifactId> 
     <version>3.3</version> 
     <configuration> 
     <source>1.8</source> 
     <target>1.8</target> 
     </configuration> 
    </plugin> 
    </plugins> 
    </build> 
    <dependencies> 
<dependency> 
     <groupId>org.openrdf.sesame</groupId> 
     <artifactId>sesame-runtime</artifactId> 
     <version>4.0.1</version> 
    </dependency> 
<dependency> 
     <groupId>ch.qos.logback</groupId> 
     <artifactId>logback-classic</artifactId> 
     <version>1.1.3</version> </dependency> 
<dependency> 
    <groupId>org.openrdf.sesame</groupId> 
    <artifactId>sesame-model</artifactId> 
    <version>4.1.0</version> 
</dependency> <dependency> 
    <groupId>org.openrdf.sesame</groupId> 
    <artifactId>sesame-repository-sail</artifactId> 
    <version>4.1.0</version> </dependency> <dependency> 
    <groupId>org.openrdf.sesame</groupId> 
    <artifactId>sesame-queryparser-sparql</artifactId> 
    <version>4.1.0</version> </dependency> <dependency> 
    <groupId>org.openrdf.sesame</groupId> 
    <artifactId>sesame-rio-api</artifactId> 
    <version>4.1.0</version> </dependency> <dependency> 
    <groupId>org.openrdf.sesame</groupId> 
    <artifactId>sesame-query</artifactId> 
    <version>4.1.0</version> 
    </dependency> 
    </dependencies> 
    </project>` 

Каждый раз, когда я пытаюсь запустить это приложение, я получаю ошибку:

16:02:06.436 [main] DEBUG o.openrdf.sail.nativerdf.NativeStore - Initializing NativeStore... 16:02:06.461 [main] DEBUG o.openrdf.sail.nativerdf.NativeStore - Data dir is ../../resources/test.ttl 16:02:06.540 [main] DEBUG o.openrdf.sail.nativerdf.NativeStore - NativeStore initialized Exception in thread "main" java.lang.NoClassDefFoundError: org/openrdf/query/impl/AbstractParserQuery at java.lang.ClassLoader.defineClass1(Native Method) ... at main.jridrer.functiontest.HelloSesame.main(HelloSesame.java:36) Caused by: java.lang.ClassNotFoundException: org.openrdf.query.impl.AbstractParserQuery at java.net.URLClassLoader.findClass(URLClassLoader.java:381) at java.lang.ClassLoader.loadClass(ClassLoader.java:424) at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331) at java.lang.ClassLoader.loadClass(ClassLoader.java:357) ... 15 more

Ошибка вызывается методом rep.getConnection(). Я попытался выполнить поиск в google, но ничего ... Я попытался выполнить поиск в классе в пакете bat.openrdf.query.impl, этот класс там не существует ... Я попытался сделать MemoryStore на месте из NativeStore, но я получаю ту же ошибку. Кто-нибудь знает, что я могу попробовать дальше?

ответ

0

Вы смешиваете две разные версии кунжута, что, вероятно, вызывает проблему. Для вашей зависимости от sesame-runtime у вас есть 4.0.1, для других библиотек у вас есть 4.1.0. В любом случае, если вы импортируете конкретные библиотеки кунжута (например, model, sail-nativerdf и т. Д.), Вам действительно не нужна зависимость времени выполнения кэш-памяти (которая является зависимой от «catch-all»).

Возможно, вы захотите подумать об использовании Билла Материалов Сезам (BOM) - это облегчает жонглирование вещами, поскольку вы определяете версию сезама только в одном месте. Дополнительную информацию об этом см. В разделе documentation.

+0

Да, действительно, это была проблема, стыд за меня ... Я проверил все версии, но я не заметил разницы между 4.0.1 и 4.1.0:/Спасибо! – odkrywczyni

Смежные вопросы