Zkontrolovat použití objektu javax.activation.DataHandler

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;