Beginnend mit der Spezifikation Java EE 6.0 werden Anwendungsausnahmen standardmäßig von Ausnahmeklassen einer Unterklasse übernommen.
Dieses Verhalten ist in der Annotation @ApplicationException oder im Element
<application-exception> einer Datei
ejb-jar.xml konfigurierbar.
Diese Regel markiert die Annotation javax.ejb.ApplicationException, wenn kein Attribut inherited für sie definiert ist.
Außerdem markiert die Regel das Element <application-exception> in einer Datei ejb-jar.xml,
für die kein Element inherited definiert ist.
@ApplicationException:
In Java EE 5.0 wird ExceptionB nicht als ApplicationException eingestuft, aber in Java EE 6.0
ist ExceptionB eine ApplicationException, weil sie eine Erweiterung der Klasse "ExceptionA" ist.
In Java EE 6.0 wurde das Attribut inherited mit dem Standardwert true hinzugefügt, sodass
alle übernommenen Klassen ebenfalls ApplicationExceptions sind.
Sie können das Verhalten von Java EE 5.0 wie folgt beibehalten:
inherited = false zur Annotation hinzufügen.inherited des Elements application-exception explizit auf false setzen.
Wenn Sie bereits einen Implementierungsdeskriptor der Version 3.0 haben, müssen Sie diesen auf einen Implementierungsdeskriptor der Version 3.1 mit XSD-Schema migrieren und
das Unterelement inherited des Elements application-exception auf false setzen.com.ibm.websphere.ejbcontainer.EE5Compatibility des WebSphere-EJB-Containers verwenden, um die Kompatibilität mit Java EE 5 zu gewährleisten.Weitere Informationen finden Sie in den folgenden Quellen: