无状态会话bean的业务方法允许操作

时间:2014-08-20 12:14:49

标签: ejb-3.0 java-ee-5

给定具有本地业务接口和CMT(容器管理事务)的无状态会话Bean。 SLSB的所有方法都将Transaction Attribute设置为“REQUIRED”。

Bean还有一个SessionContext类型的注入字段sessionContext。

问题是:“bean业务方法中允许哪两个操作?”

根据EJB 3.0核心规范,第4章表2:

  

SessionContext方法:getBusinessObject,getEJBHome,getEJBLocalHome,   getCallerPrincipal,isCallerInRole,getRollbackOnly,setRollbackOnly,   getEJBObject,getEJBLocalObject,   getTimerService,getInvokedBusinessInterface,查找JNDI访问权限   的java:comp / env的

由于这是针对Java EE 5的SCBCD(1z0-860)认证的模拟器问题,所提供的答案是:

  • sessionContex.setRollbackOnly()
  • sessionContext.getBusinessObject()

其他两个可能的选项是“sessionContext.getEJBObject”和“sessionContext.getEJBLocalObject”。

让SLSB成为业务本地接口,我的第二个选择是在setRollbackOnly之后调用getEJBLocalObject,这实际上不是正确答案。

模拟器提供的asnwer是否正确?如是: 任何人都可以帮助我更好地理解这种情况吗?

此致 皮耶路易吉

1 个答案:

答案 0 :(得分:0)

在给定的选项中:

  1. sessionContext.setRollbackOnly - 可以调用,因为bean使用容器管理的事务
  2. sessionContext.getBusinessObject - 可以调用,因为bean具有业务接口
  3. sessionContext.getEJBObject - 无法被调用,因为只有具有远程组件视图的bean才能调用此方法
  4. sessionContext.getEJBLocalObject - 无法被调用,因为只有具有本地组件视图的bean才能调用此方法