在使用Dubbo开发Provider过程中,遇到一个问题就是,在代码中使用JDK8的Lambda表达式,启动服务时,会报
invalid constant type: 18
那么是因为Dubbo所依赖的Spring所使用的javassist是一个老版本的,并不支持Lambda,需要使用高版本,比如3.22.0-GA
<dependency>
<groupId>org.javassist</groupId>
<artifactId>javassist</artifactId>
<version>3.22.0-GA</version>
</dependency>
其中Spring和Dubbo的版本为:
<spring.version>4.2.5.RELEASE</spring.version>
<dubbo.version>2.5.3</dubbo.version>
截止2018年7月5日,由于Dubbo在往Spring Cloud迁移,还有很多bug,所以使用了一个老的稳定版本。