sentinel熔断报java.lang.reflect.UndeclaredThrowableException

这篇具有很好参考价值的文章主要介绍了sentinel熔断报java.lang.reflect.UndeclaredThrowableException。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

背景:内部要进行应用jdk&springboot升级,因此也需要将Spring Cloud Hystrix 替换成alibaba sentinel。

依赖

<dependency>
   <groupId>com.alibaba.cloud</groupId>
   <artifactId>spring-cloud-starter-alibaba-sentinel</artifactId>
   <version>2022.0.0.0-RC2</version>
</dependency>

<dependency>
  <groupId>com.alibaba.csp</groupId>
  <artifactId>sentinel-datasource-nacos</artifactId>
  <version>1.8.6</version>
</dependency>

开启Feign对Sentinel的支持

sentinel熔断报java.lang.reflect.UndeclaredThrowableException,java,sentinel,spring boot,hystrix

sentinel官方文档

出现错误日志时的代码

import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestParam;

/**
 * @Author: WeiXiang
 * @Desc:
 * @Date: Create in 5:09 PM on 2020/6/23.
 */
@FeignClient(value = "messageCenter", path = "/messageCenter/cloudService")
public interface JobApplyRest {

    /**
     * 获取用户最近的报名兼职list
     *
     * @desc:
     * @author: WeiXiang
     * @date: 9:04 PM 2020/6/23
     */
    @PostMapping("/userLastMonthApplyPartJob")
    String userLastMonthApplyPartJob(@RequestParam("userId") Long userId, @RequestParam("size") Integer size);
}

当达到熔断条件时,则抛出以下错误信息

sentinel熔断报java.lang.reflect.UndeclaredThrowableException,java,sentinel,spring boot,hystrix

错误被解决后的代码

解决方案:在FeignClient上,配置自定义fallback熔断降级处理方法

import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestParam;

/**
 * @Author: WeiXiang
 * @Desc:
 * @Date: Create in 5:09 PM on 2020/6/23.
 */
@FeignClient(value = "messageCenter", path = "/messageCenter/cloudService", fallback = JobApplyRestFallback.class)
public interface JobApplyRest {

    /**
     * 获取用户最近的报名兼职list
     *
     * @desc:
     * @author: WeiXiang
     * @date: 9:04 PM 2020/6/23
     */
    @PostMapping("/userLastMonthApplyPartJob")
    String userLastMonthApplyPartJob(@RequestParam("userId") Long userId, @RequestParam("size") Integer size);
}

JobApplyRestFallback类

import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;

/**
 * @description: 报名单服务容错类
 * @author: jiusi
 * @create: 2023-09-01 10:23:47
 */
@Service
@Slf4j
public class JobApplyRestFallback implements JobApplyRest{
    @Override
    public String userLastMonthApplyPartJob(Long userId, Integer size) {
        log.warn("熔断降级开启JobApplyRest#userLastMonthApplyPartJob:userId:{}", userId);
        return null;
    }
}

 至此,java.lang.reflect.UndeclaredThrowableException 错误被解决。

问题原因:

sentinel通过代理实现熔断降级,当达到设置的阈值条件时,内部就抛出的自定义受检异常。但该受检异常并未在被代理对象接口定义中进行声明(即:Rest feignClient为被代理对象),那么这个异常就会被JVM包装成UndeclaredThrowableException进行抛出。sentinel熔断报java.lang.reflect.UndeclaredThrowableException,java,sentinel,spring boot,hystrix文章来源地址https://www.toymoban.com/news/detail-689862.html

到了这里,关于sentinel熔断报java.lang.reflect.UndeclaredThrowableException的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • java.lang.reflect.InvocationTargetException:null报未知异常

    在项目上线过程中,突然出现大量异常信息,堆栈信息如下: 此堆栈信息竟不同以往的报错,可以定位到项目的哪一行代码,只能看到是空指针异常,在经过日志中的SQL语句比对之后,初步确认到哪一行代码的空指针异常,但是此代码没有改动,究竟是什么原因导致的报错呢

    2024年02月04日
    浏览(53)
  • 【Android】报错java.lang.reflect.InvocationTargetException解决办法

    结果图 原因 InvocationTargetException异常由Method.invoke(obj, args…)方法抛出。(反射异常) 当被调用的方法的内部抛出了异常而没有被捕获时,将由此异常接收!!! 反射层将所有的异常都包装在一个InvocationTargetException 中,能使你区分异常的实际上是反射层的引起的一个调用失败(

    2024年01月21日
    浏览(45)
  • Java之SpringCloud Alibaba【四】【微服务 Sentinel服务熔断】

    Java之SpringCloud Alibaba【一】【Nacos一篇文章精通系列】 跳转 Java之SpringCloud Alibaba【二】【微服务调用组件Feign】 跳转 Java之SpringCloud Alibaba【三】【微服务Nacos-config配置中心】 跳转 Java之SpringCloud Alibaba【四】【微服务 Sentinel服务熔断】 跳转 Java之SpringCloud Alibaba【五】【微服务

    2024年02月12日
    浏览(44)
  • java.lang.Class cannot be cast to java.lang.reflect.ParameterizedType解决方案

    异常:java.lang.Class cannot be cast to java.lang.reflect.ParameterizedType 类型转换异常 主要是因为泛型使用不规范导致的错误,在MVP抽取中,我们需要懂得许多关联在一起的流程! 意思是Class类型不能转换成ParameterizedType类型,多出现于数据解析,泛型使用。先写的泛型,导致传回来的是

    2024年02月15日
    浏览(69)
  • 新环境打包后运行报错java.lang.reflect.InvocationTargetException

    业务场景:MySQL数据库定期从Oracle数据库中同步少量数据,几分钟一次 版本信息:服务器jdk1.8.0_171,开发编译环境jdk1.8.0_181 idea2023.1.2 技术框架:用了maven管理依赖,未发现spring等框架痕迹 将代码少量改动后,本地编译外加依赖打成jar包。 部署到远程服务器时,运行出错,系

    2024年02月04日
    浏览(70)
  • Exception in thread “main“ java.lang.reflect.InvocationTargetException

    idea中app后台本地运行成功,但是打成jar包后运行,失败报错如下 原因分析:jar包运行存在问题,项目中有dockerfile文件,直接执行java -jar会报错,因为dockerfeil文件中配置了启动jar包的命令:    

    2024年02月08日
    浏览(46)
  • Caused by: java.lang.reflect.InaccessibleObjectException: Unable to make protected final java.lang.C

    最近在学习JDK17的时候遇到这么一个问题,springBoot启动失败,日志如下: 原因:这是由于 JDK 8 中有关反射相关的功能自从 JDK 9 开始就已经被限制了,为了兼容原先的版本,需要在运行项目时添加  --add-opens java.base/java.lang=ALL-UNNAMED  选项来开启这种默认不被允许的行为。 解

    2024年02月03日
    浏览(120)
  • 已解决java.lang.reflect.UndeclaredThrowableException异常的正确解决方法,亲测有效!!!

    已解决java.lang.reflect.UndeclaredThrowableException异常的正确解决方法,亲测有效!!! java.lang.reflect.UndeclaredThrowableException java.lang.reflect.UndeclaredThrowableException是Java反射机制中的异常类,表示在反射调用中发生了未声明的异常。 下滑查看解决方法 通常情况下,java.lang.reflect.Undecla

    2024年02月15日
    浏览(52)
  • 遇到:java.lang.reflect.InaccessibleObjectException: Unable to make 错误应该如何解决

    遇到 \\\"java.lang.reflect.InaccessibleObjectException: Unable to make...\\\" 错误是由于Java的反射机制无法访问或调用一个非公共的方法、字段或构造函数所引发的异常。这是由于Java的安全管理器或访问控制机制限制了对非公共成员的访问。 要解决这个问题,你可以尝试以下方法: 检查访问修

    2024年02月09日
    浏览(49)
  • 遇到:java.lang.reflect.InaccessibleObjectException: Unable to make错误应该如何解决

    遇到 \\\"java.lang.reflect.InaccessibleObjectException: Unable to make\\\" 错误是因为你的代码尝试访问了一个不可访问的对象或方法。这通常会发生在使用反射机制时,尝试访问私有或受限制的成员时。要解决这个问题,你可以考虑以下几个步骤: 检查访问修饰符:检查你尝试访问的对象或方

    2024年02月07日
    浏览(62)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包