У меня проблема со следующим.метод не найден исключение, но метод существует и реализуется
Caused by: java.lang.NoSuchMethodError :ResourcePreviewRepository.objectExists(Ljava/lang/String;)Z
Во время выполнения и отладки это класс.
EntityRepository$GenericRepository$ResourcePreviewRepository$1323269030$Proxy$_$$_WeldClientProxy.objectExists(Unknown Source)
Это определение ResourcePreviewRepository
public interface ResourcePreviewRepository extends GenericRepository<String>, EntityRepository<String, ResourceMetadata>
Сейчас: метод objectExists существует в конкретной реализации GenericRepository называется AbstractJcrRepository. Но также этот метод определен в интерфейсе EntityRepository (я ожидаю, что здесь лежит проблема).
public interface GenericRepository<IdentifierType extends Serializable> {
boolean objectExists(IdentifierType id) throws RepositoryException;
}
public class AbstractJcrRepository implements GenericRepository<String> {
@Override
public boolean objectExists(final String id) throws RepositoryException {
...
}
}
Обратите внимание, что при добавлении слепка к GenericRepository, он работает, но, очевидно, я не хочу, чтобы бросить.
Это последний осущ я должен получать:
public class JcrResourcePreviewRepositoryImpl extends AbstractJcrEntityRepository<ResourceMetadata> implements ResourcePreviewRepository
Но хотя у меня есть процесс реализации и доступный метод, я получаю эту ошибку. Как я могу это исправить?
Благодарим за помощь.
ОБНОВЛЕНИЕ С РЕШЕНИЕМ Я не буду публиковать это ответ, но мне пришлось добавить недостающий метод в интерфейс. Хотя класс impl, возвращаемый Продюсером, безусловно, реализует этот метод, но только через наследование интерфейса плюс его расширение. Поэтому объявление этого метода дважды в цепочке наследования разрешило его.
Больше кода было бы полезно. – Justplayit94
Я не вижу причин предполагать, что этот метод существует в интерфейсе. – Stultuske
Вопросы поиска справки по отладке («почему этот код не работает?») Должны включать в себя желаемое поведение, конкретную проблему или ошибку и кратчайший код, необходимый для воспроизведения в самом вопросе. Вопросы без четкого описания проблемы не полезны другим читателям. См.: Как создать [mcve] – xenteros