У меня запущено приложение, в котором после нажатия на ссылку таблицы 'Edit' в журнале появляется сообщение об ошибке NoSuchMethodError
, и элемент управления остается на текущей странице,не переходит на страницу редактирования.
При получении ошибки был обнаружен фрагмент кода ниже;
Field[] fields = entityObj.getClass().getDeclaredFields();
for(int i=0;i<fields.length;i++){
Field field =fields[i];
field.setAccessible(true);
if(field.getDeclaredAnnotation(EmbeddedId.class)!=null){
return true;
}
}
return false;
В приведенном выше коде в строке if(field.getDeclaredAnnotation(EmbeddedId.class)!=null)
я получаюконкретная ошибка.
Также упоминается журнал, как показано ниже;
Caused by: java.lang.NoSuchMethodError: java.lang.reflect.Field.getDeclaredAnnotation(Ljava/lang/Class;)Ljava/lang/annotation/Annotation;
at com.sprint.neo.querymodel.common.QueryObjectUtil.checkEnitityIsHasEmbeddedId(QueryObjectUtil.java:131)
at com.sprint.neo.querymodel.common.EntityManager.getEntityObject(EntityManager.java:89)
at com.sprint.neo.querymodel.common.EntityManager.loadEntityObject(EntityManager.java:72)
at com.sprint.neo.querymodel.common.EntityManager.entityload(EntityManager.java:60)
at com.sprint.neo.querymodel.common.EntityManager.loadAndGetEntityObject(EntityManager.java:56)
at com.sprint.neo.querymodel.common.QueryObjectUtil.getListOfEntityObject(QueryObjectUtil.java:718)
at com.sprint.neo.querymodel.common.QueryObjectCache.excuteUpdate(QueryObjectCache.java:251)
at com.sprint.neo.querymodel.common.QueryObjectRow.excuteUpdate(QueryObjectRow.java:298)
at com.sprint.neo.engine.controller.actions.TaskViewEditAction.edit(TaskViewEditAction.java:83)
Элемент управления должен перейти на страницу edit jsp , поскольку все jsp реализованы правильно.Что я сомневаюсь в ошибке из журнала, так это то, что, если какой-либо файл jar отсутствует относительно API Reflection.Пожалуйста, предложите мне решение для преодоления этой проблемы.Любой ценный совет будет полезен.Большое спасибо.