java AbstractMethodError - PullRequest
       11

java AbstractMethodError

1 голос
/ 04 мая 2010

Как обработать эту ошибку в люцене:

java.lang.AbstractMethodError: org.apache.lucene.store.Directory.listAll()[Ljava/lang/String;
        at org.apache.lucene.index.SegmentInfos$FindSegmentsFile.run(SegmentInfos.java:568)
        at org.apache.lucene.index.DirectoryReader.open(DirectoryReader.java:69)
        at org.apache.lucene.index.IndexReader.open(IndexReader.java:316)
        at org.apache.lucene.index.IndexReader.open(IndexReader.java:188)

Я делаю вызов функции lucene, но, к сожалению, он сам вызывает абстрактный метод некоторого класса, как видно из ошибки выше. Какой обходной путь для этого?

Спасибо, Ахиль

Ответы [ 3 ]

3 голосов
/ 04 мая 2010

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

0 голосов
/ 07 мая 2010

Хорошо! Я нашел ответ. Это была не проблема несоответствия версий. Скорее FileSystemDirectory contrib hadoop, расширяющий абстрактный класс Directory, не реализовывал абстрактную функцию listAll (). Функция listAll () вызывается функцией lucene indexReader.open (). Я добавил эту функцию, и теперь она работает.

Спасибо

0 голосов
/ 04 мая 2010

Другой вариант - что-то плохое случилось с вашим индексом - либо он был создан с использованием другой версии Lucene, либо файл отсутствует. Попробуйте открыть индекс, используя luke .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...