无论如何,如果未经过的异常抛出到容器,是否还没有销毁ejb实例? 如果ejb向容器抛出任何异常,那么容器将从池中删除它的实例,所以我的问题是。无论如何/配置是不是要从池中销毁/删除它(实例),即使从ejb抛出异常?
答案 0 :(得分:1)
不,如果EJB抛出系统异常而不是声明的应用程序异常,则没有标准方法可以阻止该实例被删除。在这种情况下,您唯一的选择是确保抛出已检查/应用程序异常。例如,将方法体包装在try / catch中以获取系统异常,确保实例状态仍然有效(这是系统异常通常导致实例被丢弃的原因),然后将/ rethrow包装/重新抛出为checked / application异常。