A partire dalla specifica Java EE 6.0, le eccezioni dell'applicazione vengono ereditate dalle classi di eccezione della sottoclasse per impostazione predefinita.
Questo comportamento può essere configurato nell'annotazione @ApplicationException o nell'elemento
<application-exception>
di un file ejb-jar.xml.
Questa regola contrassegna l'annotazione javax.ejb.ApplicationException se non dispone di un attributo inherited definito e
contrassegna l'elemento <application-exception> in un file ejb-jar.xml
in cui non è definito un elemento inherited.
@ApplicationException:
In Java EE 5.0, ExceptionB non viene considerata un'eccezione ApplicationException, ma in Java EE 6.0
ExceptionB è un'eccezione ApplicationException perché estende dalla classe ExceptionA.
Java EE 6.0 ha aggiunto l'attributo inherited con il valore predefinito true,
per cui tutte le classi ereditate sono anche ApplicationException.
È possibile conservare il comportamento di Java EE 5.0 nei modi riportati di seguito:
inherited = false all'annotazione.inherited
dell'elemento application-exception su false. Se si dispone di un descrittore di distribuzione
versione 3.0 esistente, è necessario eseguire la migrazione ad uno schema XSD ed un descrittore di distribuzione versione 3.1
ed impostare l'elemento secondario inherited dell'elemento application-exception su false.com.ibm.websphere.ejbcontainer.EE5Compatibility per mantenere la compatibilità Java EE 5.Per ulteriori informazioni, consultare le seguenti risorse: