• <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>
  • 持續集成之路——數據訪問層單元測試遇到的問題(4)

    發表于:2013-07-22來源:Csdn作者:mydeman點擊數: 標簽:持續集成
    DirtiesContextTestExecutionListener.class, CustomTransactionDbUnitTestExecutionListener.class, ForeignKeyDisabling.class}) 可是運行時,卻出現了異常: org.springframework.transaction.Trans

      DirtiesContextTestExecutionListener.class,

      CustomTransactionDbUnitTestExecutionListener.class,

      ForeignKeyDisabling.class})

      可是運行時,卻出現了異常:

      org.springframework.transaction.TransactionSystemException: Could not roll back JPA transaction; nested exception is javax.persistence.PersistenceException: unexpected error when rollbacking

      at org.springframework.orm.jpa.JpaTransactionManager.doRollback(JpaTransactionManager.java:544)

      at org.springframework.transaction.support.AbstractPlatformTransactionManager.processRollback(AbstractPlatformTransactionManager.java:846)

      at org.springframework.transaction.support.AbstractPlatformTransactionManager.rollback(AbstractPlatformTransactionManager.java:823)

      at org.springframework.test.context.transaction.TransactionalTestExecutionListener$TransactionContext.endTransaction(TransactionalTestExecutionListener.java:588)

      at org.springframework.test.context.transaction.TransactionalTestExecutionListener.endTransaction(TransactionalTestExecutionListener.java:297)

      at org.springframework.test.context.transaction.TransactionalTestExecutionListener.afterTestMethod(TransactionalTestExecutionListener.java:192)

      ……

      Caused by: javax.persistence.PersistenceException: unexpected error when rollbacking

      at org.hibernate.ejb.TransactionImpl.rollback(TransactionImpl.java:109)

      at org.springframework.orm.jpa.JpaTransactionManager.doRollback(JpaTransactionManager.java:540)

      ... 32 more

      Caused by: org.hibernate.TransactionException: rollback failed

      at org.hibernate.engine.transaction.spi.AbstractTransactionImpl.rollback(AbstractTransactionImpl.java:215)

      at org.hibernate.ejb.TransactionImpl.rollback(TransactionImpl.java:106)

      ... 33 more

      Caused by: org.hibernate.TransactionException: unable to rollback against JDBC connection

      at org.hibernate.engine.transaction.internal.jdbc.JdbcTransaction.doRollback(JdbcTransaction.java:167)

      at org.hibernate.engine.transaction.spi.AbstractTransactionImpl.rollback(AbstractTransactionImpl.java:209)

      ... 34 more

      Caused by: java.sql.SQLNonTransientConnectionException: connection exception: connection does not exist

      at org.hsqldb.jdbc.Util.sqlException(Unknown Source)

      at org.hsqldb.jdbc.Util.sqlException(Unknown Source)

      ……

      ... 35 more

      Caused by: org.hsqldb.HsqlException: connection exception: connection does not exist

      at org.hsqldb.error.Error.error(Unknown Source)

      at org.hsqldb.error.Error.error(Unknown Source)

      ... 40 more

      最后通過查看源代碼發現,CustomDbUnitTestExecutionListener會先于TransactionalTestExecutionListener執行,而前者在執行完畢就關閉了數據庫連接,后者在回滾時,就發生了連接不存在的異常。

      解決方法很簡單,修改CustomTransactionalDbUnitTestExecutionListener:

      [java] view plaincopyprint?

      private static final Class[] CHAIN = {CustomDbUnitTestExecutionListener.class, TransactionalTestExecutionListener.class};

      private static final Class[] CHAIN = {CustomDbUnitTestExecutionListener.class, TransactionalTestExecutionListener.class};

      也就是數組兩個元素調換下位置。

    原文轉自:http://blog.csdn.net/mydeman/article/details/9374621

    老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月

  • <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>