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:

< span class="Code"> < span class= "JavaType"> Soubor < /span> f = < span class="JavaKeyword"> new < /span> Soubor ("received_image");
pokud (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.

FileDataZdroj fos_out = new FileDataSource (f);

DataHandler img_out = new DataHandler(fos_out);


return img_out;