Zkontrolovat změnu chování dědičnosti výjimky aplikace EJB

Počínaje specifikací Java EE 6.0 jsou výjimky aplikací při výchozím nastavení zděděny třídami výjimek podtřídy. Toto chování lze konfigurovat v anotaci @ApplicationException nebo prvku <application-exception> souboru ejb-jar.xml.

Toto pravidlo značí anotaci javax.ejb.ApplicationException, pokud nemá definován atribut inherited a značí prvek <application-exception> v souboru ejb-jar.xml, který nemá definován prvek inherited.


Např. pravidlo značí následující anotaci @ApplicationException:
@ApplicationException(rollback = true)
public class ExceptionA extends Exception {
}

public class ExceptionB extends ExceptionA {
}

Pravidlo také značí prvek <application-exception> v souboru ejb-jar.xml v následujícím příkladu:
<application-exception>
    <exception-class>ExceptionA</exception-class>
    <rollback>true</rollback>
</application-exception>


Výjimky v souboru ejb-jar.xml lze implementovat v aplikaci, jako je například následující příklad:
public class ExceptionA extends Exception {
}

public class ExceptionB extends ExceptionA {
}

V prostředí Java EE 5.0 se výjimka ExceptionB nepovažuje za výjimku ApplicationException, ale v prostředí Java EE 6.0 je výjimka ExceptionB výjimkou ApplicationException, protože se rozšiřuje ze třídy ExceptionA. Prostředí Java EE 6.0 přidalo atribut inherited s výchozí hodnotou true, takže všechny zděděné třídy jsou také ApplicationException.

Chování prostředí Java EE 5.0 lze zachovat následujícími způsoby:

Další informace viz následující prostředky: