Видя NoSuchMethodException с весенними аннотациями

У меня есть приложение, которое я поддерживаю, и когда я запустил JFR, я заметил, что оно генерирует сотни исключений в секунду, но в остальном работает нормально. Я хотел бы знать причины этих исключений.

У меня есть следующий код (я не разработчик, просто администратор сервера):

 sidebar.java contains:
@Controller
public class sidebarController

 vfolder.java contains:
@Controller
public class vfolderController extends sidebarController

 claim.java: contains:
@Controller
public class claimController extends sidebarController

Исключения, которые я вижу брошенными и захваченными во время выполнения, являются AnnotationUtils.findAnnotation, и все для методов, которые находятся в vfolder и утверждают, но в сообщении об исключении говорится, что он ищет методы в классе боковой панели, т.е. com.company.sidebarController.randomVFolderFunction(java.lang.String) вместо того, чтобы смотреть в com.company.vfolder, Как мне поступить? Это по замыслу? Я не могу себе представить, что это должно вызывать столько исключений. Пример трассировки стека:

Exception java.lang.NoSuchMethodException "com.company.sidebarController.randomVFolderFunction(java.lang.String)"
java.lang.Throwable.<init>(String)
java.lang.Exception.<init>(String)
java.lang.ReflectiveOperationException.<init>(String)
java.lang.NoSuchMethodException.<init>(String)
java.lang.Class.getDeclaredMethod.<init>(String, Class[])
org.springframework.core.annotation.AnnotationUtils.findAnnotation(Method, Class)
org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter$ServletHandlerMethodInvoker.getModelAndView(Method, Class, Object, ExtendedModelMap, ServletWebRequest)
...

Это из-за того, что vfolder и классы заявок расширяют боковую панель? Мне просто интересно, в каком направлении я мог бы указать разработчику в отношении этого.

1 ответ

Попробуйте удалить @Controller из vfolderController и претендовать на контроль

sidebar.java содержит:

@Controller
public class sidebarController

vfolder.java содержит:

public class vfolderController extends sidebarController

Claim.java: содержит:

 public class claimController extends sidebarController

или абстрактный контроллер

Другие вопросы по тегам