我有一个我支持的应用程序,当我运行它的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和Claim中的方法,但是异常消息说它正在侧边栏类(即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和Claim类扩展了侧边栏吗?我只是想知道我可以为此指出一个方向。
最佳答案
尝试从vfolderController和ClaimController中删除@Controller
sidebar.java包含:
@Controller
public class sidebarController
vfolder.java包含:
public class vfolderController extends sidebarController
Claim.java:包含:
public class claimController extends sidebarController
或Abstract Controller