问题描述
maven添加swagger的框架依赖的时候,出现ClassNotFoundException指向的是org.springframework.hateoas.mvc下ControllerLinkBuilder。由于项目是拉其他小伙伴的,他那边能用所以一直在找是不是自己的maven环境有问题,找来找去也没发现依赖有什么问题。
后台爆
java.lang.ClassNotFoundException: org.springframework.hateoas.mvc.ControllerLinkBuilder
at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
at springfox.documentation.swagger2.web.Swagger2Controller.hostName(Swagger2Controller.java:82)
at springfox.documentation.swagger2.web.Swagger2Controller.getDocumentation(Swagger2Controller.java:76)
swagger前端爆
500:{"timestamp":1481769329281,"status":500,"error":"Internal Server Error","exception":"java.lang.NoClassDefFoundError","message":"org/springframework/hateoas/mvc/ControllerLinkBuilder","path":"/v2/api-docs"} http://localhost:8888/v2/api-docs
解决思路
找回以前的文章,把自己的swagger依赖重新贴上去,结果可以了。数据出来了。问题就是版本上不同造成的,小伙伴写的时候是2.2的我贴的是2.4。
解决方案
提升swagger版本
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger2</artifactId>
<version>2.4.0</version>
</dependency>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger-ui</artifactId>
<version>2.4.0</version>
</dependency>