天天看點

dubbox更新spring cxf版本沖突

問題

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位址