【发布时间】:2012-02-03 23:17:52
【问题描述】:
在处理 Spring Transactions/AOP 时,我可以使用 Spring EL 从属性文件中提取超时值并将其转换为整数吗?
这里是代码
<tx:advice id="GlobalDataTxAdvice" transaction-manager="GlobalDataTransactionManager">
<tx:attributes>
<tx:method name="get*" no-rollback-for="javax.persistence.NoResultException,javax.persistence.NonUniqueResultException,org.springframework.dao.EmptyResultDataAccessException"/>
<tx:method name="find*" no-rollback-for="javax.persistence.NoResultException,javax.persistence.NonUniqueResultException,org.springframework.dao.EmptyResultDataAccessException"/>
<tx:method name="search*" read-only="true" no-rollback-for="javax.persistence.NoResultException,javax.persistence.NonUniqueResultException,org.springframework.dao.EmptyResultDataAccessException"/>
<tx:method name="*" timeout="${service.jta.timeout:60}"/>
</tx:attributes>
</tx:advice>
所以我希望默认事务超时为 60 秒,或者允许从属性占位符文件中提取超时(int 值)。
但是当我部署它时,我得到:
weblogic.application.ModuleException: :org.xml.sax.SAXParseException:cvc-datatype-valid.1.2.1: '${service.jta.timeout:60}' 不是 'integer' 的有效值。
【问题讨论】:
标签: spring spring-aop