Witam,
Mam problem z przesyłaniem danych pomiędzy aplikacją Swing a EJB na Glassfish v2.1.
Mianowicie przesłanie około 2000 rekordów generuje ruch na poziomie 20MB, a gdy się zserializuje je do pliku zajmuje około 600kb.
Metoda pierwsza:
public List<EntityDTO> findAll() throws Exception {
return em.createNamedQuery("Entity.findAll").getResultList();
}
Posiadając około 2000 generuje ruch na poziomie 20MB.
Metoda druga
public List<EntityDTO> findAll() throws Exception {
List<EntityDTO> result = em.createNamedQuery("Entity.findAll").getResultList();
ByteArrayOutputStream baos = new ByteArrayOutputStream();
try {
ObjectOutputStream oos = new ObjectOutputStream(baos);
try {
oos.writeObject(result);
} finally {
oos.close();
}
} catch (IOException e) {
e.printStackTrace();
}
return baos.toByteArray();
}
Generuje ruch na poziomie 600kb.
Czytałem w sieci że można włączyć com.sun.CORBA.encoding.ORBEnableJavaSerialization ale niestety nie pomogło to w niczym.
Czy ktoś mógłby mi pomóc i wskazać jak można zmienić sposób serializacji w Glassfish?
Metoda druga się sprawdza ale jednak przerabianie kilkudziesięciu metod może być trochę uciążliwe.