2012-08-02 29 views
1

我想知道EJB容器是否影響EJB方法調用。我不確定在這種情況下@TransactionAttributes註釋或任何其他註釋是否有效。如果有,它如何在容器中實現?自身的EJB方法調用:容器對它有影響嗎?

@Stateless 
public class MyBean { 

    public void doSomething() { 
    // logic 
    doSomethingElse(); 
    // logic 
    } 

    @TransactionAttribute(TransactionAttributeType.NOT_SUPORTED) 
    public void doSomethingElse() { 
    // logic 
    } 
} 

回答

2

純java調用doSomethingElse()不由容器處理。如果你想打一個「EJB調用」,那麼你應該使用SessionContext.getBusinessMethod(...)

sessionContext.getBusinessObject(MyBean.class).doSomethingElse(); 
+0

我有同樣的問題,你能告訴我什麼是sessionContext,以及如何讓該變量? – 2014-09-18 20:56:23

+0

有幾種方法如何得到它: 1)使用資源注入 - @Resource private SessionContext sctx;使用JNDI - InitialContext ic = new InitialContext(); sctxLookup =(SessionContext)ic.lookup(「java:comp/EJBContext」); – Arvik 2014-09-19 09:54:42

相關問題