InputStream 通过 Dubbo 传输确实会有问题,因为 InputStream 是不可序列化的。
解决方案:
一、传输字节数组
public ResponseVO insertFile(HttpServletRequest request,
@RequestParam(value = "file") MultipartFile multipartFile) throws YfException {
try {
String fileName = multipartFile.getOriginalFilename();
// 转换为字节数组传输
byte[] fileBytes = multipartFile.getBytes();
// 再通过 Dubbo 消费者传输 fileBytes
}
将 byte[] 转换为 inputStream:
Dubbo的提供者接收到方法后,再将 byte[] 转换为 inputStream,就能接收到数据了 。
ByteArrayInputStream inputStream = new ByteArrayInputStream(fileBytes);