【问题标题】:Java : HttpHeaders -LinkedHashMap - ClassCastException Byte to StringJava:HttpHeaders -LinkedHashMap - ClassCastException 字节到字符串
【发布时间】:2021-05-14 02:01:21
【问题描述】:

我有从 redis 流接收的 POJO。我想从 pojo 中检索 HttpHeaders 但低于异常。

System.out.println("-- Request json headers Authorization : " + eventReq.getHttpHeaders().getFirst(HttpHeaders.AUTHORIZATION));

java.lang.ClassCastException: class java.lang.Byte cannot be cast to class java.lang.String (java.lang.Byte and java.lang.String are in module java.base of loader 'bootstrap')
    at org.springframework.http.HttpHeaders.getFirst(HttpHeaders.java:1629)

POJO:

public class EventReq implements Serializable{
    private static final long serialVersionUID = 1L;
    private String EventType;
    private HttpHeaders httpHeaders;
    private EventFlowReq eventFlowReq;
}

当我尝试在 HttpHeaders 下方调试代码时,

我尝试使用 new String(eventReq.getHttpHeaders().getFirst(HttpHeaders.AUTHORIZATION)) ,但仍然遇到同样的异常。

【问题讨论】:

    标签: java spring-boot http-headers


    【解决方案1】:

    发生这种情况是因为 HttpHeaders 的 getFirst 方法试图返回一个字符串,但如果您查看它的实现,它会调用 MultiValuedMap 的 getFirst 方法,在您的情况下该方法返回一个字节。 我的建议是用 MultiValuedMap 替换 HttpHeaders,调用 getFirst 方法,然后才尝试将其转换为字符串。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-03-28
      • 2021-03-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-02-22
      • 2012-01-31
      相关资源
      最近更新 更多