You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Quarkus中HttpHeaders无法正常使用问题求助

解决方案

问题根源

你的代码混用了Spring Web注解与JAX-RS API,且未正确标记参数来源,导致RESTEasy Reactive无法识别HttpHeaders的注入方式,同时误将无注解的smell参数判定为QUERY类型,引发转换器缺失异常。

修复方案(统一使用Spring Web API)

调整代码,完全使用Spring Web规范定义接口,避免与JAX-RS API混用:

package org.acme.spring.web;
import org.springframework.http.HttpHeaders;
import org.springframework.http.MediaType;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*;

@RestController
public class GreetingController {
    @PostMapping(
        value = "/post",
        consumes = MediaType.APPLICATION_JSON_VALUE,
        produces = MediaType.APPLICATION_JSON_VALUE
    )
    public ResponseEntity<String> allParams(
        @RequestBody String smell, // 若参数来自查询参数则改为@RequestParam
        @RequestHeader HttpHeaders headers
    ) {
        // 可直接通过headers对象操作请求头,例如headers.get("Authorization")
        return ResponseEntity.ok("OK");
    }
}

关键调整点

  1. 用Spring的ResponseEntity替换JAX-RS的Response,保持Spring Web生态一致性;
  2. 将JAX-RS的@Produces/@Consumes替换为@PostMapping的consumes/produces属性;
  3. 为无注解的smell参数添加@RequestBody(请求体参数)或@RequestParam(查询参数),明确参数来源;
  4. 保留@RequestHeader HttpHeaders注入方式,Spring Web原生支持直接注入完整请求头对象。

备选方案(使用JAX-RS原生API)

若倾向使用Quarkus原生的JAX-RS规范,可改用JAX-RS注解与API:

package org.acme.spring.web;
import javax.ws.rs.*;
import javax.ws.rs.core.Context;
import javax.ws.rs.core.HttpHeaders;
import javax.ws.rs.core.MediaType;
import javax.ws.rs.core.Response;

@Path("/")
public class GreetingController {
    @POST
    @Path("/post")
    @Produces(MediaType.APPLICATION_JSON)
    @Consumes(MediaType.APPLICATION_JSON)
    public Response allParams(
        @QueryParam("smell") String smell,
        @Context HttpHeaders headers // JAX-RS原生的HttpHeaders注入方式
    ) {
        return Response.ok("OK").build();
    }
}

依赖检查

若使用Spring方案,确保项目已正确引入Quarkus Spring Web扩展:

<dependency>
    <groupId>io.quarkus</groupId>
    <artifactId>quarkus-spring-web</artifactId>
</dependency>

内容的提问来源于stack exchange,提问作者Amritendu De

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.14 07:55:17