我有一个应用程序,其中两个进程使用 SOAP 进行通信。一个文件正在从进程 A 传输到进程 B。进程 B 将其存储到 DB 的位置。
opqData.setBase64Binary(new DataHandler(new FileDataSource(file)));
其中文件是需要存储到数据库的数据。但是现在我想在将数据存储到数据库时对其进行压缩。一种选择是压缩文件并将其作为 FileDataSource 发送。但是我不能使用它,因为我们有超过 1000 个这样的文件,并且它在文件结构中创建了很多 zip 条目,并且创建 zip 是额外的开销。
所以我想将DataHandler实现为GzipDataHandler,返回的输入流是gzipInputStream来处理B。所以数据将被压缩并存储到数据库中。
但是我很困惑如何为我的新 GzipDataHandler 编写 getInputStream 方法。
有没有人尝试过这样的事情?或者我可以从 Java 和 SOAP 专家那里得到任何指示吗?
谢谢,
Dheeraj Joshi