Ellenőrizze az EJB alkalmazáskivétel öröklés viselkedésváltozását

A Java EE 6.0 előírástól kezdve az alkalmazáskivételeket alapértelmezésben a továbbszármaztatott kivételosztályok öröklik. A viselkedést a @ApplicationException annotációban lehet konfigurálni vagy az ejb-jar.xml fájl <application-exception> elemében.

A szabály megjelöli a javax.ejb.ApplicationException annotációt, ha annak nincs definiált inherited attribútuma, és az olyan <application-exception> elemeket az ejb-jar.xml fájlokban, amelyeknek nincs definiált inherited eleme.


Megjelöli például a szabály a következő @ApplicationException annotációt:
< span class="Code"> @ApplicationException(visszagörgetés = true)
public class ExceptionA extends Exception {
}

public class ExceptionB extends ExceptionA {
}

Megjelöli a szabály az <application-exception> elemet is az ejb-jar.xml fájlban (lásd az alábbi példát):
class="Code"> < alkalmazás-kivétel>
      < kivétel-class>ExceptionA< /exception-class>
      < rollback> true < /rollback>
</application-exception>


Az ejb-jar.xml fájlban lévő kivételek megvalósíthatók az alkalmazásban (lásd az alábbi példát):
class="Code" > public class ExceptionA kiterjeszti a kivételt {
}

public class ExceptionB extends ExceptionA {
}

A Java EE 5.0 változatban az ExceptionB nem számít ApplicationException kivételnek, de a Java EE 6.0 ExceptionB ApplicationException, mivel az ExceptionA osztályt terjeszti ki. A Java EE 6.0 hozzáadta az inherited attribútumot true alapértelmezett értékekkel, így minden örökölt osztály is ApplicationException.

A Java EE 5.0 viselkedés a következő módon őrizhető meg:

Az alábbi információforrások nyújtanak további tájékoztatást: