我有一个旧库,我必须使用它来检索文件。这个遗留库不会以InputStream的形式返回,正如您通常在阅读资料时所期望的那样,但它希望传递给它一个开放的OutputStream,它可以对其进行写入。
我必须编写一个WebFlow REST服务,它将此OutputStream写入org.springframework.web.reactive.function.server.服务器响应主体。
legacyLib.BlobRead(outputStream); // writes the stream to an outputstream, that has to be provided by me, and somehow has to end up in the ServerResponse
因为我想沿着Stream直接传递到Server响应,所以我可能必须做这样的事情,对吗?
ServerResponse.ok().body(magicOutpuStreamToFluxConverter(), DataBuffer.class);
这里是RequestHandler中重要的一部分;我遗漏了一些异常的错误处理/捕获,这些通常是不需要的。请注意,我为读取发布了不同的计划程序(或者至少,这是我想要做的),以便此阻止读取不会干扰我的主事件线程:
private Mono<ServerResponse> writeToServerResponse(@NotNull FPTag tag) {
final long blobSize = tag.getBlobSize();
return ServerResponse.ok()
.contentType(MediaType.APPLICATION_OCTET_STREAM)
.body(Flux.<DataBuffer>create((FluxSink<DataBuffer> emitter) -> {
// for a really big blob I want to read it in chunks, so that my server doesn't use too much memory
for(int i = 0; i < blobSize; i+= tagChunkSize) {
// new DataBuffer that is written to, then emitted later
DefaultDataBuffer dataBuffer = new DefaultDataBufferFactory().allocateBuffer();
try (OutputStream outputStream = dataBuffer.asOutputStream()) {
// write to the outputstream of DataBuffer
tag.BlobReadPartial(outputStream, i, tagChunkSize, FPLibraryConstants.FP_OPTION_DEFAULT_OPTIONS);
// don't know if flushing is strictly neccessary
outputStream.flush();
} catch (IOException | FPLibraryException e) {
log.error("Error reading + writing from tag to http outputstream", e);
emitter.error(e);
}
emitter.next(dataBuffer);
}
// if blob is finished, send "complete" to my flux of DataBuffers
emitter.complete();
}, FluxSink.OverflowStrategy.BUFFER).publishOn(Schedulers.newElastic("centera")).doOnComplete(() -> closeQuietly(tag)), DataBuffer.class);
}
我的应用程序实现了VpnService来拦截流量并提供量身定制的响应。目标是处理到特定地址的流量,并丢弃其他请求。 目前,我成功地解析了传入的请求,构建并发送了响应。然而,问题是这些响应并不是对原始请求的实际响应;使用套接字连接进行测试只是超时。 为了进行这一区分,我目前正在解析VPN服务输入流中的原始IP数据包,如下所示: IpDatagram是一个类,通过它可以将字节数组解析为IP数据包的表示
问题内容: 我将输入流从Web转换为位图时遇到问题。仅当输入图像类型为.BMP(位图)时,才会出现问题。在这种情况下: bitmapFactory.decodeStream返回null 。 有什么提示如何解决此问题,或者应该在哪里继续调试? 平台:Android(蜂窝) 问题答案: 谢谢@Amir指出日志。发现了一条线: 这似乎是一个普遍的问题。进行搜索后,我找到了解决方案。 我以前的代码: 起作
我需要使用JOLT转换将下面的输入转换为精确的输出。输入: 输出: 我尝试使用以下规格,但没有驱动到我需要的精确输出。规格: 任何帮助都将不胜感激。谢谢
我试着用另一个文件,当转换到EDI 837 I到XML时,出现了以下错误。这些字段是强制性字段吗? 我手动将值传递给ISA09、ISA10和ISA13,然后我收到 分析过程中遇到错误。id为“”、发送方id为“”、接收方id为“”的X12交换发生以下错误: 错误:4(字段级错误)段ID:ISA在TS中的位置:1数据元素ID:ISA09在段中的位置:9数据值:8:无效日期 错误:5(字段级错误)段I
我能得到php mime电子邮件解析器/解码器的帮助吗https://code.google.com/p/php-mime-mail-parser/不涉及任何安装。我甚至试过phpclasses的Zend和decoder。org,但没有帮助。我找不到如何将输入输入程序并从中获取输出,因为没有这方面的教程 我的目标:我需要将mime邮件从输入流转换为可读文本 请帮帮忙
我试图在Netty中实现一个NTLMProxyHandler,该NTLMProxyHandler可以执行NTLM消息交换,并通过web代理对客户端进行身份验证。 NTLMProxyHandler扩展了Netty的ProxyHandler类。因此,代理处理程序会触发一个初始的HTTP请求,并到达我创建的模拟代理服务器。代理服务器读取此请求,并以407代理身份验证所需的响应进行响应。 我在日志中启用了