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