2013-02-24 3 views
0

Я использую Сезам для доступа образца RDF хранилище,NoClassDefFoundError для Jar библиотеки

String sesameServer = "http://asimov.ludat.lth.se/openrdf-sesame/"; 
String repositoryID = "KnowRob"; 
// Cannot create HTTPRepository 
Repository myRepository = new HTTPRepository(sesameServer,repositoryID); 
myRepository.initialize(); 
RepositoryConnection con = myRepository.getConnection(); 

однако, я получаю NoClassDefFoundError при попытке запустить код, указанный выше.

Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/commons/httpclient/Credentials 
    at org.openrdf.repository.http.HTTPRepository.<init>(HTTPRepository.java:54) 
    at org.openrdf.repository.http.HTTPRepository.<init>(HTTPRepository.java:59) 
    at RDF.Start.main(Start.java:30) 
Caused by: java.lang.ClassNotFoundException: org.apache.commons.httpclient.Credentials 
    at java.net.URLClassLoader$1.run(Unknown Source) 
    at java.net.URLClassLoader$1.run(Unknown Source) 
    at java.security.AccessController.doPrivileged(Native Method) 
    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) 
    ... 3 more 
+4

Похоже, вам нужна библиотека '' Apache HttpClient' (http://hc.apache.org/) в вашем пути к классу. Обратите внимание, что версии 3.x и 4.x сильно различаются, поэтому не забудьте найти правильный для этого проекта, который должен быть указан в README или где-то еще в библиотеке Sesame. –

+2

Я бы предпочел использовать Maven или эквивалент для управления вашим транзитивным управлением зависимостями; таких проблем не стоит иметь дело с вручную. –

+0

@LuiggiMendoza Спасибо! Это была не совсем проблема, но я загрузил 'openrdf-sesame-2.6.10-sdk' вместо' openrdf-sesame-2.6.10-onejar' файл с сайта Sesame, и это сработало! – Bonk

ответ

0

NoClassDefFoundError исключение возникает при использовании класса не найти в пользовательских определить класс и определить внешний сосуд пути к классам.

So download and configure classpath commons-httpclient-3.0.1.jar библиотека в вашем пути к классу.

+0

Ваше первое предложение имеет действительно неудобную грамматику, и я не совсем уверен, что вы пытались сказать, или я бы отредактировал его. Можете ли вы [изменить], чтобы уточнить? –