Na serveru Liberty může být každý objekt DataHandler zapsán do výstupního proudu pouze jednou.
Vícenásobný zápis objektu DataHandler do proudu OutputStream povede k prázdnému souboru.
Po volání metody javax.activation.DataHandler.writeTo(OutputStream) nelze předat objekt DataHandler do jiné metody, vrátit jej a uložit jej pro pozdější použití.
Jako náhradní řešení můžete vytvořit nový objekt DataHandler a inicializovat objekt DataHandler s obsahem, který byl již načten z existujícího objektu DataHandler pomocí metody writeTo. Příklad:
|
File f = new File("received_image"); if (f.exists()) { f.delete(); } FileOutputStream fos = new FileOutputStream(f); // Zapsat objekt DataHandler do výstupního proudu. img_in.writeTo(fos); // Vytvořit nový objekt DataHandler a inicializovat jej // obsahem, který byl načten pomocí výše uvedené metody writeTo. FileDataSource fos_out = new FileDataSource(f); DataHandler img_out = new DataHandler(fos_out); return img_out; |