A partir de la spécification Java EE 6.0, les exceptions d'application sont héritées par défaut par les classes d'exceptions de sous-classe.
Ce comportement est configurable sur l'annotation @ApplicationException ou dans l'élément <application-exception> d'un fichier ejb-jar.xml.
Cette règle marque l'annotation javax.ejb.ApplicationException si celle-ci ne comporte pas d'attribut inherited défini ; elle marque l'élément <application-exception> dans un fichier ejb-jar.xml sans élément inherited défini.
@ApplicationException suivante :
Dans Java EE 5.0, ExceptionB n'est pas considéré comme ApplicationException, alors que c'est le cas dans Java EE 6.0 car il s'agit d'une
extension de la classe ExceptionA.
Java EE 6.0 a ajouté l'attribut inherited avec la valeur par défaut true et, par conséquent, toutes les classes héritées sont également considérées comme ApplicationException.
Vous pouvez conserver le comportement Java EE 5.0 de la manière suivante :
inherited = false à l'annotation.inherited de l'élément application-exception sur la valeur false. Si un descripteur version 3.0 existe déjà, effectuez la migration vers un descripteur de déploiement et un schéma XSD version 3.1, puis définissez le sous-élément inherited de l'élément application-exception sur la valeur false.com.ibm.websphere.ejbcontainer.EE5Compatibility pour conserver la compatibilité Java EE 5.Pour plus d'informations, voir les ressources suivantes :