0
我可以使用Spring EL实质上从属性文件中提取超时值并在处理Spring Transactions/AOP时将其转换为整数?春季AOP交易 - 属性超时?
下面是代码
<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-数据类型-valid.1.2.1:“$ {service.jta.timeout: 60}'不是'整数'的有效值。
感谢您的帮助。在部署中,我得到相同类型的错误:weblogic.application.ModuleException :: org.xml.sax.SAXParseException:cvc-datatype-valid.1.2.1:'#{T(Integer).valueOf(contextProperties ['timeout' ] ?: 60)}'不是'整数'的有效值。 – 2012-02-06 20:39:07
如果我再次读取异常,看起来会发生这种情况,因为在部署Spring Context文件的解析过程中,必须对Spring TX Schema使用验证,并且timeout属性定义为xs:integer,并且不能是任何非数字的。 – 2012-02-06 21:00:18
您是否使用Spring 3.0+,因为SpEL是在3中引入的,您应该得到类似SpelParseException的错误 – Ravi 2012-02-06 22:43:17