Zdravím, na konferenci už se něco podobného řešilo, jsou to vlastnosti EJB, zkuste se podívat na předchozí diskuzi, to to jen jiná vyjímka:

http://www.java.cz/konference/2006-December/009936.html

Ondřej Fafejta napsal(a):
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


--
S pozdravem

Jan Karhánek, DiS.

ICQ: 152742301
Tel: +420 608 172 433
web: http://www.hany.info/

Odpovedet emailem