论dubbo版本升级的重要性【spring boot +dubbo】

dubbo集成到spring boot中,充当消费者

使用的是注解的配置方式。

1、pom.xml中添加

<dependency>  
    <groupId>com.alibaba</groupId>  
    <artifactId>dubbo</artifactId>  
    <version>2.5.4</version>  
    <scope>provided</scope>  
    <exclusions>  
        <exclusion>  
            <groupId>org.springframework</groupId>  
            <artifactId>spring</artifactId>  
        </exclusion>  
    </exclusions>  
</dependency>
<dependency>
	<groupId>com.101tec</groupId>
	<artifactId>zkclient</artifactId>
	<version>0.10</version>
</dependency>

2、添加dubbo基础配置DubboBaseConfig.java
import org.springframework.context.annotation.Bean;


import com.alibaba.dubbo.config.ApplicationConfig;
import com.alibaba.dubbo.config.RegistryConfig;


public class DubboBaseConfig {


    @Bean
    public RegistryConfig registry() {
        RegistryConfig registryConfig = new RegistryConfig();
        registryConfig.setAddress("127.0.0.1:2181");
        registryConfig.setProtocol("zookeeper");
        return registryConfig;
    }
    
    @Bean
    public ApplicationConfig application() {
        ApplicationConfig applicationConfig = new ApplicationConfig();
        applicationConfig.setName("o2o-platform");
        return applicationConfig;
    }
    
} 

3、添加bean引用DubboReferenceConfig.java继承DubboBaseConfig

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

import com.alibaba.dubbo.config.spring.ReferenceBean;
import com.aomygod.pay.PayService;

@Configuration
public class DubboReferenceConfig extends DubboBaseConfig {

    @Bean
    public ReferenceBean<PayService> payService() {
        ReferenceBean<PayService> ref = new ReferenceBean<>();
        ref.setGroup("o2o");
        ref.setVersion("1.0");
        ref.setInterface(PayService.class);
        ref.setCheck(false);

        return ref;
    }
}

4、Spring注解方式直接使用bean

@Autowired
private PayService payService;

然后就报错了:interface  is not visible from class loader

一天的时间全坑在里面,这种查,断点进去看:


if (tmp != ics[i])
                throw new IllegalArgumentException(ics[i] + " is not visible from class loader");


发现tmp 和 ics[i] 值相同但对象不一样,难道dubbo和spring类加载器不一致或冲突的问题。。。

各种找解决方案,还是没解决了,最后看maven库dubbo最新版本是 2.5.7

就试了一下升级版本

<dependency>  
    <groupId>com.alibaba</groupId>  
    <artifactId>dubbo</artifactId>  
    <version>2.5.7</version>  
    <scope>provided</scope>  
    <exclusions>  
        <exclusion>  
            <groupId>org.springframework</groupId>  
            <artifactId>spring</artifactId>  
        </exclusion>  
    </exclusions>  
</dependency>
没想到,真的就可以了,好坑爹


  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值