2015-01-25 7 views
-1

Я следующий код работает в моем проекте, как я пытаюсь получить доступ к хранилищам на сервере кунжута:NoSuchMethodError при попытке подключиться к Сезам Repository

try{ 
    String serverUrl = "http://localhost:8080/openrdf-sesame"; 
    String repositoryID ="200"; 
    RepositoryProvider.getRepositoryManager(serverUrl); 
    Repository myRepository =new HTTPRepository(serverUrl,repositoryID); 
       myRepository.initialize(); 
       RepositoryConnection con= myRepository.getConnection(); 
    } 

Я даже использовал отладку, чтобы найти, где ошибка исходит из:

RepositoryConnection con= myRepository.getConnection(); 

Когда я запустил код, получите следующую ошибку.

HTTP Status 500 - 

type Exception report 

message 

descriptionThe server encountered an internal error() that prevented it from fulfilling this request. 

exception 

java.lang.NoSuchMethodError: org.openrdf.model.impl.ValueFactoryImpl.getInstance()Lorg/openrdf/model/impl/ValueFactoryImpl; 

note The full stack traces of the exception and its root causes are available in the GlassFish Server Open Source Edition 3.1.1 logs. 
+0

Возможный дубликат [Как исправить NoSuchMethodError?] (Http://stackoverflow.com/questions/35186/how-do-fix-a-nosuchmethoderror) –

ответ

0

A NoSuchMethodError обычно указывает на то, что вы работает программу с другой версией библиотеки, чем вы использовали для компиляции его. Общей причиной является то, что ваш путь к среде выполнения содержит более одной версии одной и той же библиотеки, а JRE выбирает «неправильный».

Поскольку ошибка в этом случае происходит на стороне сервера, вы должны посмотреть на развертывание GlassFish и убедиться, что она не содержит более одной версии библиотек Sesame.

+0

Я пробовал следовать за ошибкой, но когда я открываю org.openrdf.model.impl.ValueFactoryImpl, нет метода getInstance(), и я не знаю, почему getConnection() вызывает getInstance() – Kinuthia

+0

Поскольку вы используете неправильную версию библиотеки кунжута (или библиотек) , У ValueFactoryImpl _does_ есть статический метод 'getInstance()', если ваша копия не делает этого, значит, вы используете очень старую версию. –

+0

Вообще говоря, вы, вероятно, должны хорошо взглянуть на вашу настройку проекта и проверить, что вы включаете правильные версии библиотек (и не включая старые/устаревшие версии). –

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

  • Нет связанных вопросов^_^