【发布时间】:2021-09-04 03:37:04
【问题描述】:
我在 hazelcast 中有两个节点,例如客户端和服务器。这两个应用程序都是在 spring-boot 上编写的。服务器去外部 api 获取一些图像并返回 InputStream 的想法(在从 CloseableHttpResponse 对象中提取 httpResponse.getEntity().getContent() 之后)。然后客户端应该通过 Hazelcast(可调用对象负责此)获取此图像,并将字节 [] 返回给浏览器,以便浏览器显示图像。
这是两个节点之间的可调用对象:
public class ExecuteCallable implements Callable<IputStream>, Serializable {
private static final long serialVersionUID = 5745765873707162281L;
private SomeObject someObject;
public ExecuteCallable(SomeObject someObject) {
this.someObject= someObject;
}
public IputStream call() {
try {
DistributedExecutor distributedExecutor = (DistributedExecutor) ApplicationContextProvider
.getApplicationContext().getBean(DISTRIBUTED_EXECUTOR_BEAN_NAME);
return distributedExecutor.executeGetImage(someObject);
} finally {
//some tasks
}
}
}
当服务器返回到客户端 InputStream 对象时,我得到这个错误:
Caused by: com.hazelcast.nio.serialization.HazelcastSerializationException: There is no suitable serializer for class org.apache.http.conn.EofSensorInputStream
我尝试返回准备好的 byte[] 对象,如 IOUtils.toByteArray(inputstream),但也出现错误。
问题是否有可能在两个 hazelcast 节点之间传输一些 ipnutstream 或其字节表示?
【问题讨论】:
标签: spring-boot inputstream hazelcast hazelcast-imap