2013-03-24 54 views
1

每當我發送帶有JmsTemplate的消息時,都會拋出異常。 (我用Spring 3.0.5.RELEASE)。我無法找到不兼容的類!TransactionSynchronization.afterCompletion中的IncompatibleClassChangeError

春瓶在我的類路徑:

Spring jars in my class path

錯誤日誌:

springframework.transaction.support.TransactionSynchronizationUtils.invokeAfterCompletion(136) | TransactionSynchronization.afterCompletion threw exception 
java.lang.IncompatibleClassChangeError: Class org.springframework.jms.connection.JmsResourceHolder does not implement the requested interface org.springframework.transaction.support.ResourceHolder 
    at org.springframework.transaction.support.ResourceHolderSynchronization.afterCompletion(ResourceHolderSynchronization.java:105) 
    at org.springframework.transaction.support.TransactionSynchronizationUtils.invokeAfterCompletion(TransactionSynchronizationUtils.java:133) 
    at org.springframework.transaction.support.AbstractPlatformTransactionManager.invokeAfterCompletion(AbstractPlatformTransactionManager.java:904) 
    at org.springframework.transaction.support.AbstractPlatformTransactionManager.triggerAfterCompletion(AbstractPlatformTransactionManager.java:879) 
    at org.springframework.transaction.support.AbstractPlatformTransactionManager.processCommit(AbstractPlatformTransactionManager.java:707) 
    at org.springframework.transaction.support.AbstractPlatformTransactionManager.commit(AbstractPlatformTransactionManager.java:632) 
    at org.springframework.transaction.interceptor.TransactionAspectSupport.commitTransactionAfterReturning(TransactionAspectSupport.java:314) 
    at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:116) 
    at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172) 
    at org.springframework.aop.framework.Cglib2AopProxy$DynamicAdvisedInterceptor.intercept(Cglib2AopProxy.java:621) 
    at ... 
+1

爲什麼使用spring-jdbc,spring-hibernate3和spring-dao 2.0.8版本? – 2013-03-24 11:41:12

+0

我爲它的HibernateDaoSupport使用spring-hibernate3(它的最後一個版本是2.0.8)! – united 2013-03-24 14:32:25

+0

嘗試使用spring-orm而不是spring-hibernate3。參見http://forum.springsource.org/showthread.php?82841-Does-spring-hibernate3-work-with-Spring-3-0。 – 2013-03-24 20:12:55

回答

0

JmsResourceHandler extends org.springframework.transaction.support.ResourceHolderSupport;和ResourceHolderSupport implements ResourceHolder。

ResourceHolderSupport是兩個jar:

  • 彈簧道2.0.8
  • 春-TX-3.0.5.Release

我使用Spring的ORM解決的問題-3.0.5.Release,而不是spring-hibernate3-2.0.8 ,.

0

這種問題時,你有3rdparties的不兼容的版本通常出現。

在這種情況下,嘗試「對齊」彈簧瓶 - 使用相同的彈簧版本。 這應該可以解決您的問題。

希望這會有所幫助。

+0

換句話說,您需要重寫傳遞依賴關係,以便使用相同版本的所有彈簧罐。你不能混合搭配,特別是當版本相距甚遠(年)時。 – 2013-03-24 14:00:28

相關問題