访问EJB类</transaction-type>中的ejb-jar.xml的<transaction-type>配置

时间:2013-12-29 13:04:46

标签: ejb-3.0 ejb-jar.xml

我在ejb-jar.xml中使用配置部署了EJB,我想访问

<transaction-type>
在ejbCreate()期间我的EJB类中的

配置,即Bean或Container,因为我必须将此值传递给我的框架以进行内部工作。

注意:我不想重复并定义一个额外的env条目,因为它已经存在了,我想用它

1 个答案:

答案 0 :(得分:1)

没有方法可以直接确定此信息。但是,您可以依靠EJBContext.getUserTransaction抛出CMT异常的事实间接获取信息:

@Resource EJBContext ejbContext;

private boolean isBeanManagedTransaction() {
  try {
    ejbContext.getUserTransaction();
    return true;
  } catch (IllegalStateException e) {
    return false;
  }
}

注意,无法从所有容器回调中调用getUserTransaction方法(请参阅EJB规范中允许的操作表),但幸运的是,可以从ejbCreate / PostConstruct调用getUserTransaction,因此此方法应该适用于您的目的。 / p>