整合一些框架时往往只引入了关键的包,但是运行时,会提示有些类找不到,比如我使用引入MyBatis-plus的项目时,本想通过http访问尝试获取数据库信息,服务正常启动了,但是通过http访问时提示错误:
2023-08-14 13:52:56.886 ERROR 7352 --- [nio-7021-exec-2] o.a.c.c.C.[.[.[/].[dispatcherServlet] : Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Handler dispatch failed; nested exception is java.lang.NoClassDefFoundError: com/fasterxml/jackson/annotation/JsonKey] with root cause
java.lang.ClassNotFoundException: com.fasterxml.jackson.annotation.JsonKey
at java.net.URLClassLoader.findClass(URLClassLoader.java:381) ~[na:1.8.0_181]
at java.lang.ClassLoader.loadClass(ClassLoader.java:424) ~[na:1.8.0_181]
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:349) ~[na:1.8.0_181]
at java.lang.ClassLoader.loadClass(ClassLoader.java:357) ~[na:1.8.0_181]
访问返回:
通过百度提示,是少了某个jar,于是根据百度结果,尝试通过maven依赖树,查找缺少的jar,尝试解决;
打开maven依赖树的方法是:
通过错误提示,以及这个maven依赖树,我发现似乎要引入这个json包(只是自己的猜测),于是就在pom.xml加入了这个包,重启项目,再次访问,发现问题解决了
此时再访问返回正确:
通过这一过程,似乎给我提供了一些简单的处理问题思路,因此还是记录下,方便后续回顾。