簡體   English   中英

JBAS014360:org.jboss.invocation.InterceptorContext上的EJB 3.1 FR 4.3.14.1並發訪問超時

[英]JBAS014360: EJB 3.1 FR 4.3.14.1 concurrent access timeout on org.jboss.invocation.InterceptorContext

我正在遷移到JBoss AS 7.1和Seam 2.3,但在JBAS014360: EJB 3.1 FR 4.3.14.1 concurrent access timeout on org.jboss.invocation.InterceptorContext有一些問題JBAS014360: EJB 3.1 FR 4.3.14.1 concurrent access timeout on org.jboss.invocation.InterceptorContext

這是我的動作類:

@Name("myAction")
@Scope(ScopeType.CONVERSATION)
public class MyAction implements java.io.Serializable {
    @In(create = true)
    private MyService myService;

    @In(required = false)
    @Out(required = true)
    private User user;

    @In(required = false)
    @Out(required = false)
    private Acquisition acquisition;

    @Begin(join = true)
    @Create
    public void init() {
       // more code
         acquisition = myService.getNext(user);
    }

    public void saveHistory() {
       myService.saveHistory(acquisition, user);
    }
}

和服務類。

@Stateless
@Name("myService")
public class MyServiceImpl implements MyService {
    @In(create = true)
    private EntityManager em;

    @TransactionAttribute(TransactionAttributeType.REQUIRES_NEW)
    public Acquisition getNext(User user){
      // em.createNamedQuery(...);
      // acquisition.update(user);
      // em.flush();
      // return acquisition
   }

   @TransactionAttribute(TransactionAttributeType.REQUIRES_NEW)
   public Acquisition saveHistory(Acquisition acquisition,User user){
     history = createHistoryObject(...);
     acquisition.getHistories().add(history);
     return acquisition;
   }
}

init()塊調用getNext(User user)方法,它會導致異常。

從xhtml頁面調用saveHistory(...)方法並按預期工作。

init()塊有什么問題? EJB 3.1或Seam 2.3中的一些變化?

有人可以解釋一下嗎?

我找到了一種工作方式。

如果我只是把

@In(create = true)
private EntityManager em;

MyAction.class沒有別的,那么一切正常。

仍在尋找這種行為的解釋。

有任何想法嗎?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM