Spring MVC ResponseEntity Hystrix 回退

Posted

技术标签:

【中文标题】Spring MVC ResponseEntity Hystrix 回退【英文标题】:Spring MVC ResponseEntity Hystrix fallback 【发布时间】:2018-04-05 09:47:31 【问题描述】:

我有一个返回 ResponseEntity<List<Attachment>> 的服务方法,它的 hystrix fallback 方法也必须返回 ResponseEntity<List<Attachment>>。 问题是我需要返回一个字符串消息来向用户澄清错误,而不是返回一个新的Arraylist<>() - 这是我的方法

@Override
@HystrixCommand(fallbackMethod = "getAttachmentsFallback")
public ResponseEntity<List<AttachmentDto>> getAttachments(IAttachable entity) 
    List<AttachmentDto> attachments = client.getAttachments(entity.getAttachableId(), entity.getClassName(),
            entity.getAppName());
    return new ResponseEntity<List<AttachmentDto>>(attachments, HttpStatus.OK);

这就是它的后备方式

public ResponseEntity<List<AttachmentDto>> getAttachmentsFallback(IAttachable entity, Throwable e) 
    //I need to return a String instead of the new Arraylist<AttachmentDto>() 
    return new ResponseEntity<List<AttachmentDto>>(new ArrayList<AttachmentDto>(), HttpStatus.INTERNAL_SERVER_ERROR);

【问题讨论】:

【参考方案1】:

我通过不带 args 的 ResponseEntity 而不是 ResponseEntity&lt;List&lt;AttachmentDto&gt;&gt; 使其工作

谢谢大家

【讨论】:

【参考方案2】:

只需使用:

ResponseEntity<Object>

这适用于任何类型。因为 Object 是 java.lang

中定义的最顶层的类

代替:

ResponseEntity<List<AttachmentDto>>

【讨论】:

以上是关于Spring MVC ResponseEntity Hystrix 回退的主要内容,如果未能解决你的问题,请参考以下文章

使用 Feign 和 Spring MVC 时对 ResponseEntity 进行编码和解码?

在 Spring mvc/rest 开发中创建控制器时对以下内容感到困惑:ModelAndView、Model、@ResponseBody、@ResponseEntity

Spring MVC返回Map格式JSON数据

如何在 ResponseEntity 中返回已创建状态 (201 HTTP)

如何设定springmvc的reponse的字符集

Spring + Angular:如何以角度解析 ResponseEntity?