Я работаю над проектом в затмении, что, когда я запускаю с помощью причала плагина дает мнеjava.lang.AbstractMethodError запускает webapp в Eclipse с причалом.
java.lang.AbstractMethodError:
au.com.mycopmpany.impl.MyClassDAOImpl.findById(Ljava/lang/Integer;)Ljava/lang/Object;.
Этот файл отлично компилируется в Eclipse, и код реализует метод, что переговоры об ошибках,. Из моего чтения эта ошибка указывает, что «во время выполнения» JVM находит класс, который не реализовал этот метод.
Но могу вас заверить, что у MyClassDAOImpl
определенно есть метод findById
, реализованный с правильной подписью.
Это похоже на ошибку в компиляторе Eclipse; Я могу исправить проблему, запустив maven package
из командной строки, а затем запустить приложение в Eclipse отлично.
Кажется, что компилятор Eclipse имеет какую-то ошибку в отношении этого класса. Я прочитал что-то в сети о ошибке с генериками в компиляторе Eclipse (который этот класс использует Generics), но этот базовый класс/интерфейс повторно внедряется снова и снова в нашей базе кода, и этот класс всегда имеет проблемы.
Кто-нибудь знает обходное решение или, еще лучше, решение этой проблемы?
Я могу повторять это исключение каждый раз, поэтому, если разработчик компилятора Eclipse читает это, и это известная проблема, пожалуйста, свяжитесь со мной для помощи в отслеживании проблемы.
Update:
Класс с проблемой является одним из многих, которые реализуют GenericDAO
, где Общий интерфейс определяется как:
public interface GenericDAO<T, TList>
рассмотренный метод, который неисправного является:
public T findById(Integer integer) throws APIException;
Что представляет собой базовый класс или интерфейс, объявляющий параметр как; Целое, или что-то в цепочке, как Serializable? Мне интересно, генерирует ли он код, который требует что-то выше (например, Serializable) для параметра, но он получает Integer и каким-то образом не понимает, что он реализует Serializable. – lumpynose
Возможно, вам нужно объявить тип параметра id с помощью super или extends? Например, открытый абстрактный класс BaseDao> Обратите внимание, что я просто колоть в темноте и гадать. –
lumpynose
Lumpynose - Это может быть решением, и я попробую, но есть еще 30 классов, реализующих этот интерфейс, и они отлично работают. – stevemac