Java EE 6.0 仕様以降、アプリケーション例外はサブクラス例外クラスによってデフォルトで継承されるようになりました。
この振る舞いは、@ApplicationException アノテーション、または
ejb-jar.xml ファイルの <application-exception>
エレメントで構成可能です。
この規則により、定義された inherited 属性がない javax.ejb.ApplicationException アノテーションにフラグを立て、また定義された inherited エレメントがない ejb-jar.xml ファイル内の
<application-exception> エレメントにフラグを立てます。
@ApplicationException アノテーションにフラグを立てます。
Java EE 5.0 では ExceptionB は ApplicationException と見なされませんが、Java EE 6.0 では
ExceptionB は ExceptionA クラスから継承するので ApplicationException です。
Java EE 6.0 に追加された inherited 属性のデフォルト値は true です。
したがって、継承されたクラスもすべて ApplicationException です。
以下の方法で、Java EE 5.0 の動作を保持できます。
inherited = false をアノテーションに追加する。application-exception エレメントの inherited サブエレメントを false に明示的に設定します。バージョン 3.0 の既存のデプロイメント記述子がある場合、バージョン 3.1 デプロイメント記述子および XSD スキーマにマイグレーションし、application-exception エレメントの inherited サブエレメントを false に設定する必要があります。com.ibm.websphere.ejbcontainer.EE5Compatibility を使用して、Java EE 5 との互換性を維持する。詳しくは、以下のリソースを参照してください。