Ricerca una modifica del comportamento nell'ereditarietà dell'eccezione dell'applicazione EJB

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.


Ad esempio, la regola contrassegna la seguente annotazione @ApplicationException:
< span class="Code"> @ApplicationException(rollback = true)
public class ExceptionA extends Exception {
}

public class ExceptionB extends ExceptionA {
}

La regola contrassegna anche l'elemento <application-exception> in un file ejb-jar.xml nell'esempio riportato di seguito:
< span class="Code"> < application-exception>
      < classe-eccezione>ExceptionA< /classe-eccezione>
      < rollback> true < /rollback>
</application-exception>


Le eccezioni in ejb-jar.xml possono essere implementate nell'applicazione come nel seguente esempio:
< span class="Code"> public class ExceptionA estende l'eccezione {
}

public class ExceptionB extends ExceptionA {
}

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:

Per ulteriori informazioni, consultare le seguenti risorse: