Vous pouvez transférer des fichiers volumineux à travers la limite EJB en utilisant l'interface Externalizable (une extension de Serializable). Voilà ce que je propose:
- Ecrire une classe par exemple
ExternalFile
qui enveloppe/contient un objet File
- faire cette classe implémente
Externalizable
- mettre en œuvre le
writeExternal
pour écrire le fichier contenu dans le flux de sortie donné
- Implémentez le
readExternal
pour lire le flux d'entrée donné dans un nouveau fichier temporaire
- Envisagez d'ajouter des attributs de taille et de nom à votre classe ExternalFile pour aider le récepteur à décider quoi faire (et rem brai pour les écrire et les lire via les méthodes writeExternal et readExternal).
L'étape 3 est votre étape de sérialisation lorsque vous envoyez votre objet (fichier) depuis la couche EJB. L'étape 4 est votre étape de dé-sérialisation qui reçoit le fichier sous forme de flux de données et peut faire ce qu'il veut avec le flux. My 4 suggère de l'écrire dans un fichier temporaire, mais vous pouvez transmettre ce flux directement via votre servlet vers n'importe quelle autre destination.
Espérons que ça aide.