1

每次我使用 JmsTemplate 发送消息时,都会抛出异常。(我使用了 Spring 3.0.5.RELEASE)。我找不到不兼容的类!

我的班级路径中的弹簧罐:

我的班级路径中的弹簧罐

错误日志:

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 ...
4

2 回答 2

1

JmsResourceHandler扩展了org.springframework.transaction.support.ResourceHolderSupport;ResourceHolderSupport实现ResourceHolder。

ResourceHolderSupport 在两个罐子里:

  • spring-da-2.0.8
  • Spring-tx-3.0.5.Release

我通过使用 Spring-orm-3.0.5.Release 而不是 spring-hibernate3-2.0.8 解决了这个问题。

于 2013-04-06T07:24:30.577 回答
0

当您拥有不兼容的 3rdparties 版本时,通常会出现此类问题。

在这种情况下,尝试“对齐”弹簧罐 - 使用相同的弹簧版本。这应该可以解决您的问题。

希望这可以帮助。

于 2013-03-24T11:47:15.257 回答