Вы можете передавать большие файлы через границу EJB, используя интерфейс Externalizable (расширение Serializable).Вот что я предлагаю:
- Напишите класс, например
ExternalFile
, который упаковывает / содержит File
объект - Сделайте этот класс реализующим
Externalizable
- реализовать
writeExternal
для записи содержимого файла в заданный выходной поток - реализовать
readExternal
для чтения указанного входного потока в новый временный файл - Рассмотреть возможность добавления атрибутов размера и имени вваш класс ExternalFile, чтобы помочь получателю решить, что делать (и не забудьте записать их и прочитать их с помощью методов writeExternal и readExternal).
Шаг 3 - это этап сериализации, когда вы отправляетеВаш объект (файл) из слоя EJB.Шаг 4 - это этап десериализации, который принимает файл в виде потока данных и может делать с потоком все, что захочет.Мой 4 предлагает записать его во временный файл, но вы можете передать этот поток напрямую через ваш сервлет в любой другой пункт назначения.
Надеюсь, это поможет.