Zdravím konferenci!

Pokud na straně EJB vyhodím výjímku typu RunTimeException, tak se mi ke klientovi dostane EJBException.
Tedy klient vůbec neví, jaká výjímka nastala.

Je možné někde v glassfishi nastavit, aby se klientovi poslala skutečná vyhozená výjímka?

=========================
Pozn. pokud vyhodíme výjímku typu Exception, tak se ke klientovi dostane správná výjímka. Ovšem pozor: pokud změníte nějaká data v načtené etnitě, tak se změny projeví, i když vyhodíte Exception.

Např.

public void updateEntity(MyEntity e) throws MyException{
    MyEntity toUpdate=em.find(MyEntity.class, e.getId());
    toUpdate.setName("UPRAVENE JMENO");

    throw new MyException("Vlastni vyjimka -- extends Exception!");
}


Po vyhození výjímky se do entity toUpdate uloží změny - to je trochu nečekané, co? ;-)

Proto by se měly na straně EJB vyhazovat výjímky  typu RunTimeException.
Tam tento problém nenastává.
viz. specifikace ejb-3_0-fr-spec-persistence.pdf
str. 64 dole.

Fafi

Odpovedet emailem