问题
ERROR|2017-05-19 10:58:24,537|main|org.springframework.boot.SpringApplication|Application startup failed
java.lang.NoSuchMethodError: org.springframework.aop.support.AopUtils.isCglibProxyClass(Ljava/lang/Class;)Z
at org.apache.cxf.common.util.SpringAopClassHelper.getRealClassInternal(SpringAopClassHelper.java:85)
at org.apache.cxf.common.util.ClassHelper.getRealClass(ClassHelper.java:55)
at org.apache.cxf.frontend.ServerFactoryBean.create(ServerFactoryBean.java:182)
at com.alibaba.dubbo.rpc.protocol.webservice.WebServiceProtocol.doExport(WebServiceProtocol.java:117)
at com.alibaba.dubbo.rpc.protocol.AbstractProxyProtocol.export(AbstractProxyProtocol.java:69)
at com.alibaba.dubbo.rpc.protocol.ProtocolFilterWrapper.export(ProtocolFilterWrapper.java:55)
at com.alibaba.dubbo.rpc.protocol.ProtocolListenerWrapper.export(ProtocolListenerWrapper.java:56)
at com.alibaba.dubbo.rpc.Protocol$Adpative.export(Protocol$Adpative.java)
at com.alibaba.dubbo.registry.integration.RegistryProtocol.doLocalExport(RegistryProtocol.java:153)
原因是我自己升级了spring的版本,spring4.2.0以上的版本需要cxf3.0.0以上的版本。
dubbox2.8.4需要cxf2.6.1版本,这样就矛盾了
解决
阿里的dubbo项目是基于spring2.x的。但之后停止更新了。当当网有根据dubbo扩展成dubbox,基于spring3.x,但我的项目中用的是spring4.x,于是fork了dubbox,自己升级了一下spring到4.2.4.RELEASE,顺便升级了cxf到3.1.5。
升级后的dubbox工程
github地址