java.lang.IndexOutOfBoundsException: Index: 0

在初涉分布式项目,使用SpringCloud时遇到java.lang.IndexOutOfBoundsException错误,起初误认为是无查询结果,调试发现是数据库连接问题。检查发现数据库密码配置错误,修正后仍存在相同异常。进一步排查定位到USERSPROVIDER,理解其为客户端负载均衡器获取生产者服务器地址的组件,调整配置使其与应用名字匹配后,问题得以解决,数据正常显示。
摘要由CSDN通过智能技术生成

刚接触分布式项目

练习SpringCloud 分布式,eureka 注册 后台接口 页面看数据库里面的数据 都是分开模块写的

我在查询数据时报java.lang.IndexOutOfBoundsException: Index: 0

知道是下标越界,我把它理解成了没有查询到数据,我就去bebug一下 结果:list返回的就是0

我就去看我的 后台接口的模块 里面的数据库密码 结果:数据库密码不一致

改完数据库密码之后还是这个错java.lang.IndexOutOfBoundsException: Index: 0

然后我就去页面的接口里面找到了USERSPROVIDER

这个是 通过客户端负载均衡器获取生产者服务器基础地址
我把它理解成了一个后台送数据到前台的一个比较固定的套路
这个名字要和Application的名字一致

/***
 * 通过客户端负载均衡器获取生产者服务器基础地址
 * @return
 */
public String getServerUrl() {
    //通过客户端调用器查找指定服务    Application的名字一致 "USERPROVIDER"
    List<ServiceInstance> instList = discoveryClient.getInstances("USERSPROVIDER");
    //获取第一个服务器
    ServiceInstance inst = instList.get(0);
    //获取服务提供者服务器ip、端口号
    String ip = inst.getHost();
    int port = inst.getPort();
    //拼接调用地址
    String url="http://"+ip+":"+port+"/users";
  
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值