Я разрабатываю веб-службу JAX-WS для загрузки файла с сайта SFTP. Я использую следующий код для чтения файла.Загрузка файла с сайта SFTP - Проблема с преобразованием InputStream в DataHandler
channelSftp.cd(sftpHostPath); //sftpHostPath = Path from where file is to be downloaded
inputStream = channelSftp.get(fileName + "." + fileExtn);
, который возвращает объект java.io.InputStream
. Этот объект должен быть возвращен веб-службой как объект DataHandler
.
Для достижения этой цели, я создал класс, который реализует InputStreamDataSource
DataSource
и использовал его для создания объекта DataHander
в
returnFile = new DataHandler(new InputStreamDataSource(inputStream));
, который, в свою очередь, возвращенный веб-методе.
Теперь, запустив код из SoapUI, включив MTOM, я получаю следующий вывод.
Пожалуйста, обратите внимание, в приложении, что размер файла 0 и имя файла также не специфичен.
Какова возможная причина этого и подходящий обходной путь для решения проблемы?
ПРИМЕЧАНИЕ: Файл должен быть возвращен в DataHandler
сама (как вложение) без использования java.io.File
объекта. Также я хочу избежать использования любой сторонней банки.