У меня есть приложение, в котором два процесса общаются с использованием SOAP. Файл передается из процесса A в процесс B. Где процесс B сохранит его в БД.
opqData.setBase64Binary(new DataHandler(new FileDataSource(file)));
где файл - это данные, которые необходимо сохранить в БД. Однако теперь я хочу заархивировать данные при сохранении их в БД. Один из вариантов — заархивировать файл и отправить его как FileDataSource. Однако я не могу его использовать, потому что у нас более 1000 таких файлов, и он создает много записей zip в файловой структуре, а создание zip требует дополнительных затрат.
Поэтому я подумал реализовать DataHandler как GzipDataHandler, а возвращаемый входной поток — это gzipInputStream для обработки B. Таким образом, данные будут заархивированы и сохранены в БД.
Однако я не понимаю, как написать метод getInputStream для моего нового GzipDataHandler.
Кто-нибудь пробовал что-то подобное раньше? Или я могу получить какие-либо указания от экспертов по Java и SOAP?
Спасибо,
Дирадж Джоши