关于Springcloud的RestTemplate使用服务名报异常java.net.UnknownHostException

SpringCloud使用restTemplate调用服务提示 java.net.UnknownHostException 在写nacos入门demo时,发现在。其它地方的代码不修改的情况下,在该。注解,依然会报找不到服务名的错误。 阅读详情

关于Springcloud的RestTemplate使用服务名报异常java.net.UnknownHostException和使用localhost:8081报异常java.lang.IllegalStateException: No instances available for localhost问题

1.关于java.lang.IllegalStateException: No instances available for localhost问题

在Springcloud使用RestTemplate访问其他模块的时候,可能会出现java.lang.IllegalStateException: No instances available for localhost问题。也有时候回出现空指针的问题。对于这类Bug解决的方法可能是由于你的restTemplate配置的问题。这些问题发生在访问的模块,被访问的模块这里就不用写出来了。

首先是启动类和restTemplate配置。这里需要注意的是,如果restTemplate对象是用纯地址访问的话,就不需要@LoadBalanced这个标签,如果

@SpringBootApplication
@EnableEurekaClient
public class RibbonApplication {

    @Bean
    //@LoadBalanced
    public RestTemplate restTemplate(){
        return new RestTemplate();
    }
    public static void main(String[] args) {
        SpringApplication.run(RibbonApplication.class,args);
    }
}

然后就是controller层通过restTemplate对象访问其他模块接口的方法

	@RestController
	public class UserController {
	
    @Autowired
    private RestTemplate restTemplate;
    /***
     *      通过ribbon和template对象访问 user里面的数据
     */
    @GetMapping("/movie/{id}")
    public User findById(@PathVariable Long id) {
        System.err.println("consumer---------------------"+id);
        return this.restTemplate.getForObject("http://localhost:7900/simple/"+ id, User.class);
    }
}

值得注意的是,如果你不注释 //@LoadBalanced这个标签的话,就会报出一下错误:java.lang.IllegalStateException: No instances available for localhost。所以解决这种异常的方法是注释掉@LoadBalanced这个标签

2.关于Springcloud的RestTemplate不能使用服务名java.net.UnknownHostException: micorservice-provider-user

如果restTemplate对象需要使用服务名的话会报异常:java.net.UnknownHostException: micorservice-provider-user。 micorservice-provider-user是其他模块的服务名
服务名:在这里插入图片描述

启动类代码

@SpringBootApplication
@EnableEurekaClient
public class RibbonApplication {

    @Bean
   @LoadBalanced
    public RestTemplate restTemplate(){
        return new RestTemplate();
    }

    public static void main(String[] args) {

        SpringApplication.run(RibbonApplication.class,args);
    }
}

访问其他模块的接口的代码

@RestController
public class UserController {

    @Autowired
    private RestTemplate restTemplate;
    
    /***
     *      通过ribbon和template对象访问 user里面的数据
     */
    @GetMapping("/movie/{id}")
    public User findById(@PathVariable Long id) {
        System.err.println("consumer---------------------"+id);
        
        //这里使用的micorservice-provider-user是其他模块的服务名
        
        return this.restTemplate.getForObject("http://micorservice-provider-user/simple/"+ id, User.class);
    }
}

解决这类异常的方法是在resttemplate配置 @LoadBalanced这个注解

3.总结

如果需要使用ip和端口,就不需要加 @LoadBalanced注解,如果需要使用应用名访问,那就需要在restTemplate配置加上 @LoadBalanced注解 。因为@LoadBalanced这个注解是负载均衡的注解,而负载均衡就是通过访问服务名而实现的。如果你加上这个注解之后使用restTemplate,那么他就默认你的localhost一个模块的服务名称(ip+端口),而不是本机的ip。总而言之,如果需要使用ip和端口,就不需要加 @LoadBalanced注解,如果需要使用应用名访问,那就需要在restTemplate配置加上 @LoadBalanced注解

(已解决)nacos+RestTemplate使用服务名报异常java.net.UnknownHostException Springcloud-alibaba&nacos的RestTemplate使用服务名报异常java.net.UnknownHostException 问题描述 本地测试,springboot注册了nacos服务,然后一个springboot通过服务名(http://服务名/接口)调用服务,查看nacos控制台服务都已经注册了,但是无论我是否给RestTemplate添加@LoadBalanced注解,都是报UnknownHostException错误 解决办法 在maven pom.xml中添. 阅读详情

相关推荐

同一台电脑使用模拟ModbusTcp主从通讯的时候,Wireshark抓取不到包

在使用ModBus Slave和Poll模拟主从通讯的时候,发现Wireshark怎么都抓取不到包怎么排查和解决?

HUJIANGMING的博客 703

解决Nacos显示服务已注册,但RestTemplate和OpenFeign调用失败:UnknownHostException

最近笔者进行 Spring Cloud Alibaba 版本升级的时候,发生了一个奇怪的事情:Nacos 显示服务已注册,但 RestTemplate 和 OpenFeign 的调用却一直失败。具体来说,笔者的两个服务,均在 Nacos 网页管理页面中显示各自的服务名,但一个服务使用 OpenFeign 调用另一个服务时,一直失败,OpenFeign 的 fallback 类方法一直被触发,而且没有抛出任何异常。

暗诺星刻的博客 9352

三、Crowd与JIRA、Confluence用户集成并SSO单点登录

补充说明: 通过此方法集成后,用户、组以及用户和组的关系都在Crowd系统中存储,但各个系统的权限仍由各系统控制,也可在JIRA和Confluence中添加和删除用户。 在做步骤4和步骤5的时候,要特别小心,确保当前系统的超级权限用户(一般为admin,具体看当前系统的全局权限配置)和组以及它们的关系已经在Crowd中同样存在了,才可切换并禁用当前系统的内部用户目录,否则可能造成权限丢失等严重问题(因为禁用了内部用户目录,而Crowd中又不存在这个超级权限用户和组或它们的关系,所以权限就丢失了) 维护示例

weixin_38621072的博客 2984

将springboot应用制作成docker镜像部署,restTemplate调用第三方接口java.net.UnknownHostException解决

将springboot应用制作成docker镜像部署,restTemplate调用第三方接口报java.net.UnknownHostException解决 问题描述: 在开发中使用了Spring的RestTemplate调用了一个第三方的接口,本地调试接口200,但是当我将应用打包制作成docker镜像,使用rancher部署后,发现调用第三方接口的接口报错了,查看日志报错:nested exception is org.springframework.web.client.ResourceAccessE

le_exclusive的博客 1765

MATLAB演示元胞自动机算法

一、元胞自动机理论 元胞自动机与格子理论是一个非常好的模型,许多复杂的问题都可以通过它来建立模型,下面就简要介绍一下。 元胞自动机 实质上是定义在一个具有离散、有限状态的元胞组成的元胞空间上,并按照一定的局部规则,在离散的时间维度上演化的动力学系统。 元胞 元胞又可称为单元、细胞,是元胞自动机的最基本的组成部分。 元胞具有以下特点: 元胞自动机最基本的单元。 元胞有记忆贮存状态的功...

frange zone 2万+

全覆盖路径规划开源项目Clean-robot-turtlebot3关键函数解析(上)

本系列文章主要介绍全覆盖路径规划开源项目Clean-robot-turtlebot3的相关内容,包含如下四篇文章,分别介绍了开源项目Clean-robot-turtlebot3流程的概括总结、ROS坐标系常用坐标及其变换、Clean-robot-turtlebot3关键函数解析等内容。

慕羽★的博客 2778

Springcloud-alibaba&nacos的RestTemplate使用服务名报异常java.net.UnknownHostException

restTemplate使用服务名远程调用报异常java.net.UnknownHostException

ChitinLoveJAVA的博客 1449

Open3D 读取、保存、显示点云【2025最新版】

paint_uniform_color给所有的点上一个统一的颜色。博客长期更新,本文最近更新时间为:2025年1月1日。

点云侠的博客 37万+

Eureka服务发现报错: I/O error on GET request for "..": ; nested exception is java.net.UnknownHostException

I/O error on GET request for “…”: ; nested exception is java.net.UnknownHostException: **** 控台显示异常: java.net.UnknownHostException: MMORDER at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSoc...

antrychme的博客 1万+

【深度学习|语义分割之UNet】如何使用ResNet50 作为 U-Net 网络的骨干网络(backbone)并使用预训练的 ResNet50 模型。附代码及解读。

【深度学习|语义分割之UNet】如何使用ResNet50 作为 U-Net 网络的骨干网络(backbone)并使用预训练的 ResNet50 模型。附代码及解读。

985小水博的摸鱼日常 3089

60、磁悬浮主动隔振系统的LQR控制研究

本研究针对磁悬浮主动隔振系统,提出了一种结合ANN建模、LQR控制与MPGA优化的综合控制方案。通过建立系统的动力学与状态空间模型,利用混合训练算法的ANN精确描述MSVI的非线性和滞后特性,并设计基于最小力传递率的LQR控制器。为优化LQR的Q和R矩阵,引入多群体遗传算法(MPGA),有效克服传统GA的早熟收敛问题,提升搜索效率与控制性能。仿真结果表明,在单频、扫频、随机及冲击激励下,该方法显著降低传递力幅值,隔振效果远优于被动系统。研究验证了所提方法的有效性,为磁悬浮隔振技术的实际应用奠定了基础,并展望

linux6sysadmin的博客 122

java.net.UnknownHostException - XXXXX(服务名)

@[TOC](学习Spring Cloud consumer 用RestTemplate 调用具有 负载均衡的 payment 时,出现的异常 java.net.UnknownHostException - XXXXX(服务名) ) java.net.UnknownHostException: LC-PAYMENT-SERVICE at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:184) ~[na:1.8.

qq_43497195的博客 688

【乐企-工具篇】生成发票左上角二维码

【代码】【乐企-业务篇】生成发票左上角二维码。

九七的博客 707

SpringCloud-----Ribbon异常java.net.UnknownHostException

1、后台异常内容 org.springframework.web.util.NestedServletException: Request processing failed; nested exception is org.springframework.web.client.ResourceAccessException: I/O error on GET request for "ht...

wendy专栏 6610

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

Spring Cloud 使用Ribbon做客户端负载均衡遇到的坑

Spring Cloud 使用Ribbon做客户端负载均衡遇到的坑 Spring Cloud Ribbon使用服务名调用服务提供者异常 java.net.UnknownHostException 在用eureka做服务集群时,使用Ribbon做客户端负载均衡,使用服务名调用服务,客户端报错, java.net.UnknownHostException 日志详情: 就是不识别SERVICE-HI ...

wupiaobei5924的博客 1801

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

RestTemplate调用服务失败,抛出UnknownHostException异常

有使用@LoadBalanced注解。 问题点 <!-- 引入依赖版本为:2021.1 --> <dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId> </dependency> 解决思路 参考博主:zhouyiminga的解决方式修改无

Xxx的博客 2152

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

UnknownHostException: xxx restTemplate无法通过服务名调用服务/@LoadBalanced注解失效

最近在构建项目时出现一个问题,由于是从旧的项目复制部分依赖过来的。出现了一个restTemplate无法通过服务名调用服务的问题。新的项目使用的springboot是2.1.4的。 1、错误的分析: 场景: RestTemplate上有加入 @Bean和@LoadBalanced注解,注入正常。但仍然无法通过服务名(http://服务名/v1/接口)调用服务,报错UnknownHostException,经测试通过ip端口的形式(http://localhost:8081/v1/接口)却可以调用服务的接口。

weixin_43043173的博客 6028

使用RestTemplate 通过微服务名提示UnknownHostException

2021.0.1.0版本的springcloud不包含ribbon,如果通过RestTemplate访问会提示UnknownHostException; 2.1.0.RELEASE版本的则可直接访问。

weixin_38810671的博客 924

RestTemplate使用java.net.UnknownHostException 解决

更多内容请浏览本人博客 在使用RestTemplate 时,直接使用 RestTemplate restTemplate = new RestTemplate(); ResponseEntity<QzhResult> responseEntity = restTemplate.getForEntity("http://MY-SERVER/token/{1}", String.class...

小石头记 5192

RestTemplate调用服务报错java.net.UnknownHostException: EUREKA-SERVER

使用RestTemplate 来调用服务,配置类有 @Bean @LoadBalanced RestTemplate restTemplate() { return new RestTemplate(); } EUREKA-CLIENT调用EUREKA-SERVER报错如下。 2022-03-02 18:04:36.801 ERROR 17956 --- [nio-8083-exec-7] o.a.c.c.C.[.[.[/].[dispatcherSe

MieMieFly的专栏 2872

spring cloud出现java.net.UnknownHostException处理

今天在学习Spring cloud时,实现RestTemplate远程调用时,出现了java.net.UnknownHostException: member-service错误。然后开始排查: 1、首先看引入的Spring-cloud包是否正确。 <dependency> <groupId>org.springframework.cloud&l...

圆师傅的博客 1万+

关于Nacos使用RestTemplate多模块间调用错误或失败的问题

最开始怀疑是Nacos的选主问题,于是追了半天源码,后来发现是RestTemplate初始化时没有配置负载均衡@LoadBalanced,导致nacos底层不能正常解析服务名。在使用RestTemplate进行跨服务调用时,返回UnknownHostException:未知主机。适用于SpringBoot3 + Nacos2.1.X版本。

水到渠成 1093

RestTemplate/HTTPClient出现java.net.UnknownHostException: XXXX.XXXX.com解决办法

在项目中,一个主系统需要向多个子系统分发数据(RestTemplate)。项目接口都是通过域名请求访问。每当调用到一定阶段后都会出现未知域名,导致请求数据失败。以下是错误内容 org.springframework.web.client.ResourceAccessException: I/O error on POST request for "http://xxx.com/dataSync/updateJson": xxx.com; nested exception is java.net.Unk.

AnNong 2734

java调用第三方接口出现UnknownHostException,常用方法都试了解决不了,看看我这个方法吧

java调用第三方接口出现UnknownHostException,常用方法都试了解决不了,看看我这个方法吧 各种文章都看了,说需要配置resttemplate,负载均衡等,这些常见的问题基本上用这写方法都可以解决,可是我的问题一直没有解决 最后解决的办法是:我们项目默认使用的是我们jar包中的resttemplate,无论我们自己如何定义resttemplate,都不起作用,我们需要吧我们的默认...

m0_37670322的博客 5787

SpringCloud RestTemplate | java.net.UnknownHostException: xxx

问题 eureka 使用 RestTemplate 调用服务时,出现如下错误。 2019-12-18 17:32:23.129 ERROR 12204 --- [nio-9913-exec-1] o.a.c.c.C.[.[.[/].[dispatcherServlet] : Servlet.service() for servlet [dispatcherServlet] in c...

qq_41497111的博客 2302
上一篇: IDEA的springboot集成jsp找不到页面的解决方式
下一篇: SpringBoot入门
hao9e
博客等级 码龄7年 189粉丝 51原创
评论 6
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值