0
Когда я запускаю следующий код, я получаю UnexpectedRollbackException вместо ArrayIndexOutOfBoundsExceptionUnexpectedRollbackException - JTA сделка неожиданно откат
Окружающая среда: Weblogic, Spring, Hibernate, JTA и EJB
Код:
public class ServiceImpl
{
@Transactional
public void test()
{
throw new ArrayIndexOutOfBoundsException();
}
}
public class WebLayerClass
{
service.test();
}
log:
Caused by: org.springframework.transaction.UnexpectedRollbackException: JTA transaction unexpectedly rolled back (maybe due to a timeout); nested exception is weblogic.transaction.RollbackException: setRollbackOnly called on transaction
at org.springframework.transaction.jta.JtaTransactionManager.doCommit(JtaTransactionManager.java:1024) ~[spring-tx-4.0.3.RELEASE.jar:4.0.3.RELEASE]
at org.springframework.transaction.support.AbstractPlatformTransactionManager.processCommit(AbstractPlatformTransactionManager.java:757) ~[spring-tx-4.0.3.RELEASE.jar:4.0.3.RELEASE]
at org.springframework.transaction.support.AbstractPlatformTransactionManager.commit(AbstractPlatformTransactionManager.java:726) ~[spring-tx-4.0.3.RELEASE.jar:4.0.3.RELEASE]
at org.springframework.transaction.interceptor.TransactionAspectSupport.commitTransactionAfterReturning(TransactionAspectSupport.java:478) ~[spring-tx-4.0.3.RELEASE.jar:4.0.3.RELEASE]
at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:272) ~[spring-tx-4.0.3.RELEASE.jar:4.0.3.RELEASE]
at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:95) ~[spring-tx-4.0.3.RELEASE.jar:4.0.3.RELEASE]
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179) ~[spring-aop-4.0.3.RELEASE.jar:4.0.3.RELEASE]
at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:207) ~[spring-aop-4.0.3.RELEASE.jar:4.0.3.RELEASE]
at com.sun.proxy.$Proxy261.update(Unknown Source) ~[na:na]
at de.unicreditgroup.esa.service.webtool.sql.WebToolSqlServiceImpl.updateSqlQuery(WebToolSqlServiceImpl.java:234) ~[de-unicreditgroup-esa-services-2.1.0-SNAPSHOT.jar:na]
спасибо большое за ответ. У меня есть разные бизнес-кейсы, которые должны выполняться в веб-слое на основе исключения из службы. Таким образом, в этом случае catch block с «ArrayIndexOutOfBoundsException» не поймает «UnexpectedRollbackException». Как выполнить разворачивание исключения? Развертывает фреймворк? –
Для jta, похоже, ее проблема открыта весной https://jira.spring.io/browse/SPR-9053 –
Можете ли вы поддержать меня, чтобы добавить работу для разворота и получить исключение. –