从 Java EE 6.0 规范开始,缺省情况下,应用程序异常由子类异常类继承。
该行为在 @ApplicationException 注释或 ejb-jar.xml 文件的 <application-exception> 元素中可配置。
如果 javax.ejb.ApplicationException 注释没有已定义的 inherited 属性,那么该规则将标记该注释,而且它还会标记没有已定义 inherited 元素的 ejb-jar.xml 文件中的 <application-exception> 元素。
@ApplicationException 注释:
在 Java EE 5.0 中,ExceptionB 未被视为 ApplicationException,但在 Java EE 6.0 中 ExceptionB 是 ApplicationException,因为它是从 ExceptionA 类扩展得到的。
Java EE 6.0 添加了缺省值为 true 的 inherited 属性,因此所有继承类也是 ApplicationException。
可按以下方式保留 Java EE 5.0 行为:
inherited = false 添加到注释。application-exception 元素的 inherited 子元素显式设置为 false。 如果现在已有 V3.0 部署描述符,那么必须迁移到 V3.1 部署描述符和 XSD 模式,并将 application-exception 元素的 inherited 子元素设置为 false。com.ibm.websphere.ejbcontainer.EE5Compatibility 来保持 Java EE 5 兼容性。有关更多信息,请参阅以下资源: