2013-09-17 4 views
0

Я создал приложение с использованием зависимостей кунжута:Ошибка после развертывания приложения Сезам в Tomcat

<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> 

Он работает при запуске его с помощью встроенного Tomcat в Spring IDE. я разворачивал его в Tomcat 7, но я получаю следующее сообщение об ошибке при обращении к одному из методов, которые я использовал в своем коде: (То же самое работает весной)

java.lang.AbstractMethodError: org.openrdf.repository.sail. SailRepositoryConnection.begin() V на org.openrdf.repository.event.base.NotifyingRepositoryConnectionWrapper.begin (NotifyingRepositoryConnectionWrapper.java:272) на org.openrdf.repository.manager.SystemRepository.initialize (SystemRepository.java:88) на org.openrdf.repository.manager.LocalRepositoryManager.createSystemRepository (LocalRepositoryManager.java:107) на org.openrdf.repository.manager.LocalRepositoryManager.createSystemRepository (LocalRepositoryManager.java:62) на org.o penrdf.repository.manager.RepositoryManager.initialize (RepositoryManager.java:104) на com.mvc.API.StorageAPI.createNativeLocalRepository (StorageAPI.java:154)

В строке 154 у меня есть: manager.initialize() ;

которого составляет от:

Файл DATADIR = новый файл (REPOSITORY_NAME); Менеджер RepositoryManager = новый LocalRepositoryManager (dataDir);

RepositoryManager - это абстрактный класс из сезама, который имеет реализованный метод initialize(), LocalRepositoryManger наследует его, но не переопределяет метод initialize(). Я также пробовал с Tomcat 6.0.37 и изменил зависимости кунжута до 2.7.6 У вас есть идея, почему я получаю эту ошибку?

Спасибо!

+0

Вы также задали этот вопрос в [рассылке по списку сезам] (http://sourceforge.net/mailarchive/message.php?msg_id=31409711) и получили ответ там - что-то неясно? –

ответ

0

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

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

Проверьте, что ваш путь сборки и/или ваш путь к запуску не содержат неправильных или повторяющихся файлов jar. Если вы недавно изменили свои зависимости от maven, убедитесь, что ваш путь сборки времени компиляции регенерирован, например, с помощью «mvn eclipse: clean eclipse: eclipse» из командной строки или с помощью опции обновления M2E (если вы " используя плагин Eclipse M2E, то есть).

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