Sprawdzenie, czy nie zmieniło się zachowanie w dziedziczeniu wyjątków aplikacji EJB

Począwszy od specyfikacji Java EE 6.0, wyjątki aplikacji są domyślnie dziedziczone przez klasy wyjątków podklasy. To zachowanie można skonfigurować za pomocą adnotacji @ApplicationException lub w elemencie <application-exception> pliku ejb-jar.xml.

Ta reguła oznacza flagą adnotację javax.ejb.ApplicationException, jeśli nie ma ona zdefiniowanego atrybutu inherited, a ponadto oznacza flagą element <application-exception> w pliku ejb-jar.xml, który nie ma zdefiniowanego elementu inherited.


Na przykład reguła oznaczy flagą następującą adnotację @ApplicationException:
@ApplicationException(rollback = true)
public class ExceptionA extends Exception {
}

public class ExceptionB extends ExceptionA {
}

Reguła oznaczy flagą także element <application-exception> w pliku ejb-jar.xml w poniższym przykładzie:
<application-exception>
    <exception-class>ExceptionA</exception-class>
    <rollback>true</rollback>
</application-exception>


Wyjątki w pliku ejb-jar.xml można zaimplementować w aplikacji, tak jak to przedstawiono w poniższym przykładzie:
public class ExceptionA extends Exception {
}

public class ExceptionB extends ExceptionA {
}

W specyfikacji Java EE 5.0 wyjątek ExceptionB nie jest uznawany za wyjątek ApplicationException, ale w specyfikacji Java EE 6.0 wyjątek ExceptionB jest wyjątkiem ApplicationException, ponieważ rozszerza się on z klasy ExceptionA. W specyfikacji Java EE 6.0 dodano atrybut inherited, którego wartością domyślną jest true, tak więc wszystkie dziedziczone klasy są także wyjątkiem ApplicationException.

Zachowanie specyfikacji Java EE 5.0 można zachować w następujące sposoby:

Więcej informacji na ten temat zawierają następujące zasoby: