I AS 7.1 und Seam eine Migration auf JBoss mache 2.3, aber einige Probleme mit 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 den gleichzeitigen Zugriff Timeout auf org.jboss.invocation.InterceptorContext
Hier hat meine Aktion Klasse:
@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);
}
}
und eine Serviceklasse.
@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;
}
}
getNext(User user)
Verfahren sind aus dem init()
Block genannt, und es bewirkt, dass die Ausnahme.
saveHistory(...)
Die Methode wird von der xhtml-Seite aufgerufen und funktioniert wie erwartet.
Was ist los mit dem init()
Block? Einige Änderungen in EJB 3.1 oder in Seam 2.3?
Kann jemand das erklären?