ejb事务忽略异常

时间:2016-07-27 09:14:03

标签: java eclipselink ejb-3.0 weblogic-10.x

所有,

我有一个豆子:

@Stateless
@TransactionManagement(TransactionManagementType.CONTAINER)
@TransactionAttribute(TransactionAttributeType.REQUIRES_NEW)
Class A {

public void methodeA(){
try{
 ejbRemote1.xxx()
}
catch(Exception ex) {
log.error(ex)
}
...
methodeB();
...
}

public void methodeB(){
try{
 ejbRemote2.yyy()
}
catch(Exception ex) {
log.error(ex)
}

}

}

使用符号@TransactionAttribute(TransactionAttributeType.REQUIRED)在ejb远程定义了methode xxx()

使用符号@TransactionAttribute(TransactionAttributeType.REQUIRED)

在远程ejb中使用了方法yyy()

我的问题我成功调用了methode xxx(),我的情况是methode xxx()抛出ZZZException extend runtimeException(当这个方法抛出一个ZZZException时是好的,是一个功能需要) 我的eroor在我的文件记录器中。 但是线程去调用方法时的问题yyy()我的线程没有进入方法yyy()但是立即抛出一个ZZZException同样的异常抛出当我调用xxx()并且我在服务器控制台中得到这个exeption

<27 juil. 2016 10 h 45 CEST> <Notice> <EJB> <BEA-010014> <Error occurred while attempting to rollback transaction: javax.transaction.SystemException: Timeout during rollback processing
javax.transaction.SystemException: Timeout during rollback processing
    at weblogic.transaction.internal.ServerTransactionImpl.internalRollback(ServerTransactionImpl.java:433)
    at weblogic.transaction.internal.ServerTransactionImpl.rollback(ServerTransactionImpl.java:387)
    at weblogic.ejb.container.internal.BaseRemoteObject.handleSystemException(BaseRemoteObject.java:862)
    at weblogic.ejb.container.internal.BaseRemoteObject.handleSystemException(BaseRemoteObject.java:809)
    at weblogic.ejb.container.internal.BaseRemoteObject.postInvoke1(BaseRemoteObject.java:518)
    Truncated. see log file for complete stacktrace

我需要忽略如果方法xxx()抛出异常只是我记录错误但我需要执行yyy()没有问题

methode xxx()在另一个项目中我无法更改事务类型或代码 但yyy()在我的项目中我无法修复它

持久性是jta事务。

weblogic 10.3.5

eclipselink 2.4.2

ejb 3

javaEE 5

想要你。

0 个答案:

没有答案