我有一个工作流程,需要从我的Java客户端向Web服务器进行HTTP POST。POST的正文包含一个规范对象。然后我将其从我的Web服务器传递到运行在服务器上自己进程中的Apache ZooKeeper(它运行一个大型复杂计算)。我正在努力弄清楚如何以流式方式将字节发送回我的Web服务器。我需要进行流式传输,因为我的Java客户端在Web服务器上有一个HTTP GET请求,正在等待流式传输字节。我不能等待整个计算完成,我希望尽快将字节发送回客户端。
大多数在线JAX-RS示例都是从客户端进行HTTP PUT,而Web服务器端没有流式代码的示例。我会发布我目前所拥有的内容,但它不起作用。
这是我的ZooKeeper Java代码,它调用了一个JAX-RS客户端PUT。我真的不确定如何做到这一点,我从未尝试过使用JAX-RS进行数据流式传输。
大多数在线JAX-RS示例都是从客户端进行HTTP PUT,而Web服务器端没有流式代码的示例。我会发布我目前所拥有的内容,但它不起作用。
这是我的ZooKeeper Java代码,它调用了一个JAX-RS客户端PUT。我真的不确定如何做到这一点,我从未尝试过使用JAX-RS进行数据流式传输。
final Client client = ClientBuilder.newClient();
final WebTarget createImageTarget = client.target("groups/{imageGroupUuid:" + Regex.UUID + "}");
StreamingOutput imageResponse = createImageTarget.request(MediaType.APPLICATION_OCTET_STREAM).put(Entity.entity(createRandomImageDataBytes(imageConfigurationObject), MediaType.APPLICATION_OCTET_STREAM), StreamingOutput.class);
这是我的Web服务器代码,它处理HTTP PUT请求。只是一个桩代码,因为我对客户端的HTTP PUT没有信心。
@PUT
@PATH("groups/{uuid:" + Regex.UUID + "}")
@Consumes(MediaType.APPLICATION_OCTET_STREAM)
public void updateData(StreamingOutput streamingOutput)
{
}