我正在尝试使用 quarkus 的反应式 REST 端点与反应式邮件程序相结合,以创建一个小型应用程序,该应用程序基本上接收图像并通过电子邮件发送该图像。但是,由于某种原因,如果我包含附件,或者尝试从反应流中读取,则会失败。
到目前为止,我的代码如下(相关部分)。两个被注释掉的部分是一个测试,以检查我是否可以读取整个请求流。这似乎也失败了(无限期地接受)。发送没有附件的邮件就可以了。我尝试在文档中搜索有关如何执行此操作的任何信息,但大多数文档都是关于返回响应式响应,而不是以响应式方式读取请求。(顺便说一句,第一次尝试响应式 API,如果我做错了,请多多包涵 :))
val request = HttpServerRequest(re.request())
val attachment = request.toMulti().map {
it.bytes
}.flatMap {
Multi.createFrom().iterable(it.asIterable())
}
// val temp = request.toMulti().subscribe().asStream().collect(Collectors.toList())
// val byteArray = attachment.subscribe().asStream().collect(Collectors.toList()).toByteArray()
val mail = Mail
.withHtml(recipient(), SUBJECT, messageBody())
.addReplyTo(sendingUser())
.addAttachment("receipt", attachment, contentType)
return mailer.send(mail).map { "" }