在看开源项目 xxl-job 时,使用jrebel启动报错:
Caused by: java.lang.ClassCastException: org.springframework.boot.actuate.endpoint.annotation.EndpointDiscoverer$EndpointBean cannot be cast to org.springframework.boot.JrEndPointBean
at org.springframework.boot.MvcEndpointUtil.filterEndpoints(MvcEndpointUtil.java:69)
at org.springframework.boot.actuate.endpoint.annotation.EndpointDiscoverer.discoverEndpoints(EndpointDiscoverer.java:123)
at org.springframework.boot.actuate.endpoint.annotation.EndpointDiscoverer.getEndpoints(EndpointDiscoverer.java:117)
at org.springframework.boot.actuate.autoconfigure.endpoint.web.ServletEndpointManagementContextConfiguration$WebMvcServletEndpointManagementContextConfiguration.servletEndpointRegistrar(ServletEndpointManagementContextConfiguration.java:65)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.__invoke(DelegatingMethodAccessorImpl.java:43)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:45009)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:45012)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:154)
... 57 common frames omitted
不使用jrebel 启动是可以的,不报错。
经过检查,应该是 idea 安装的 jrebel 插件 不能适应新版本 spring-boot-starter-parent 2.3.0.RELEASE 工程用的是这个版本,所以两个解决方案,一是升级idea 的 jrebel 插件,因为麻烦,懒得升级,万一升级出现破解问题,找麻烦
所以,二是将 sping boot 版本降下来,我降到了2.1.3.RELEASE 可以了
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.1.3.RELEASE</version>
<type>pom</type>
<scope>import</scope>
</dependency>
因为这个异常,网上信息较少,所以发此博文
参考:https://www.codeleading.com/article/8276162799/