問題
ERROR|-- ::,|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:)
at org.apache.cxf.common.util.ClassHelper.getRealClass(ClassHelper.java:)
at org.apache.cxf.frontend.ServerFactoryBean.create(ServerFactoryBean.java:)
at com.alibaba.dubbo.rpc.protocol.webservice.WebServiceProtocol.doExport(WebServiceProtocol.java:)
at com.alibaba.dubbo.rpc.protocol.AbstractProxyProtocol.export(AbstractProxyProtocol.java:)
at com.alibaba.dubbo.rpc.protocol.ProtocolFilterWrapper.export(ProtocolFilterWrapper.java:)
at com.alibaba.dubbo.rpc.protocol.ProtocolListenerWrapper.export(ProtocolListenerWrapper.java:)
at com.alibaba.dubbo.rpc.Protocol$Adpative.export(Protocol$Adpative.java)
at com.alibaba.dubbo.registry.integration.RegistryProtocol.doLocalExport(RegistryProtocol.java:)
原因是我自己更新了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位址