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.
@ApplicationException:
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:
inherited = false do adnotacji.inherited elementu application-exception na wartość false. W przypadku istniejącego deskryptora wdrażania w wersji 3.0 należy przeprowadzić migrację do deskryptora wdrażania w wersji 3.1 i schematu XSD, a następnie ustawić element podrzędny inherited elementu application-exception na wartość false.com.ibm.websphere.ejbcontainer.EE5Compatibility kontenera EJB WebSphere do zachowania zgodności ze specyfikacją Java EE 5.Więcej informacji na ten temat zawierają następujące zasoby: