【发布时间】:2022-07-22 03:41:07
【问题描述】:
我想将 JAX-RS-REST-Restservice(在 Tomcat 下运行)迁移到 Quarkus。 我可以一路解决我的大部分问题,但我仍然有一个方法的问题。
在此功能中,我执行 OTA 下载(设备固件)。我设置了一些标题、MediaType 和内容长度。
在原始服务中,我的代码如下所示:
public HomeAutomationService
{
...
@Context
private HttpServletRequest request;
...
@GET
@Produces(MediaType.APPLICATION_OCTET_STREAM)
@Path("/v1/DownloadFirmware")
public Response getFirmware()
{
...
response.setHeader("X-OTA-SIGNATURE", signatureString);
response.setContentLength((int) file.length());
response.setContentType(MediaType.APPLICATION_OCTET_STREAM);
return Response.ok(file, MediaType.APPLICATION_OCTET_STREAM).build();
}
}
不幸的是,我在 Quarkus 中找不到类似 HttpServletResponse 的东西。 所以我现在使用一个 ResponseBuilder 来创建一个 Response,我可以根据需要在其中添加标题:
ResponseBuilder 响应构建器;
但是,我不确定如何实例化 ResponseBuilder。有一种方法可以为 ResponseBuilder 设置标头,但我没有找到有关如何设置内容长度和内容类型的任何信息。
我不确定是否必须设置内容类型,因为我已经使用了@Produces-annotation - 但是内容长度呢?是自动设置的吗?如果没有(这就是我的猜测),我该如何正确设置?
感谢您的阅读和回答,
鲁迪
【问题讨论】: