Интеграция ActiveMq с Spring 2.5 - PullRequest
0 голосов
/ 25 мая 2010

Я использую ActiveMq 5.32 с Spring 2.5.5.Я использую довольно общую конфигурацию, поскольку я включаю jmsTransactionManager в DefaultMessageListenerContainer, Spring выдает ошибку при запуске:

"Ошибка создания компонента с именем 'org.springframework.jms.listener.DefaultMessageListenerContainer # 0'"

Без атрибута transactionManager это работает нормально, но когда я добавляю 10 сообщений в очередь сообщений, возникает исключение транзакции.

Часть моих конфигураций:

<bean class="org.springframework.jms.listener.DefaultMessageListenerContainer">
                <property name="connectionFactory" ref="connectionFactory" />
                <property name="destination" ref="emailDestination" />
                <property name="messageListener" ref="emailServiceMDP" />
                <property name="transactionManager" ref="jmsTransactionManager" />
</bean>

<bean id="jmsTransactionManager" class="org.springframework.jms.connection.JmsTransactionManager">
                <property name="connectionFactory" ref="connectionFactory" />
</bean>

Есть ли в этой версии Spring и Activemq проблемы с интеграцией?Или мне нужны дополнительные библиотеки, чтобы заставить работать jmsTransactionManager?

Обновлено: полная трассировка стека:

21: 36: 21 Ошибка инициализации контекста. Org.springframework.beans.factory.BeanCreationException: Ошибка создания компонента с именем org.springframework.jms.listener.DefaultMessageListenerContainer # 0 ', определенный в ресурсе ServletContext [/WEB-INF/config/spring/component/applicationContext-jms-activemq5.xml]: сбой вызова метода init;Вложенное исключение - java.lang.NoSuchMethodError: org.springframework.transaction.support.TransactionSynchronizationUtils.sameResourceFactory (Lorg / springframework / транзакция / support / ResourceTransactionManager; Ljava / lang / Object.sprf. з.фр.AbstractAutowireCapableBeanFactory.initializeBean (AbstractAutowireCapableBeanFactory.java:1337) в org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean (AbstractAutowireCapableBeanFactory.java:473) в org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory $ 1.Run (AbstractAutowireCapableBeanFactory.java409getObject (AbstractBeanFactory.java:264) в org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton (DefaultSingletonBeanRegistry.java:221) в org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean (AbstractBeanFactory.java:261) в org.springfraeBean.Beaf185) в org.springframework.beans.factory.support..support.AbstractApplicationContext.finishBeanFactoryInitialization (AbstractApplicationContext.java:729) при org.springframework.context.support.AbstractApplicationContext.refresh (AbstractApplicationContext.java:381) в org.springframework.web.context.ContextLoader.createWebApplicationContext (ContextLoader.java:255) в org.springframework.web.context.ContextLoader.initWebApplicationContext (ContextLoader.java:199) в org.springframework.web.context.ContextLoaderListener.contextInitialized (ContextLoaderListener.java:45) по адресу com.suzsoft.framework.spring.web.context.ContextLoaderListener.contextInitialized (ContextLoaderListener.java:23) по адресу org.apache.catalina.xtConte. ().3934) в org.apache.catalina.core.StandardContext.start (StandardContext.java:4429) в org.apache.catalina.core.ContainerBase.addChildInternal (ContainerBase.java:791) в org.apache.catalina.core.ContainerB.addChild (ContainerBase.java:771) в org.apache.catalina.core.StandardHost.addChild (StandardHost.java:526) в org.apache.catalina.startup.HostConfig.deployDirectory (HostConfig.java:987) вorg.apache.catalina.startup.HostConfig.deployDirectories (HostConfig.java:909) в org.apache.catalina.startup.HostConfig.deployApps (HostConfig.java:495) в org.apache.catalina.startup.HostConfig.start (HostConfig.java:1206) в org.apache.catalina.startup.HostConfig.lifecycleEvent (HostConfig.java:314) в org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent (LifecycleSupport.java:119) в org.apache.catalina.core.ContainerBase.start (ContainerBase.java:1053) в org.apache.catalina.core.StandardHost.start (StandardHost.java:722) в org.apache.catalina.core.ContainerBase.start (ContainerBase.java:1045) в org.apache.catalina.core.StandardEngine.start (StandardEngine.java:443) в org.apache.catalina.core.StandardService.start (StandardService.java:516) в org.apache.catalina.core.StandardServer.start (StandardServer.java:710) в org.apache.catalina.startup.Catalina.start (Catalina.java:583) в sun.reflect.NativeMethodAccessorImpl.invoke0 (Native Метод) в sun.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:39) в sun.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:25) в java.lang.reflect.Method.invoke (Method.java:597) в org.apache.catalina.startup.Bootstrap.start (Bootstrap.java:288) в org.apache.catalina.startup.Bootstrap.main (Bootstrap.java:413) Вызванный: java.lang.NoSuchMethodError: org.springframework.transaction.support.TransactionSynchronizationUtils.sameResourceFactory (Lorg / springframework / сделка / поддержка / ResourceTransactionManager; Ljava / языки / объекта;) Z в org.springframework.jms.listener.AbstractPollingMessageListenerContainer.initialize (AbstractPollingMessageListenerContainer.java:190) в org.springframework.jms.listener.DefaultMessageListenerContainer.initialize (DefaultMessageListenerContainer.java:459) в org.springframework.jms.listener.AbstractJmsListeningContainer.afterPropertiesSet (AbstractJmsListeningContainer.java:135) в org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods (AbstractAutowireCapableBeanFactory.java:1368) в org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean (AbstractAutowireCapableBeanFactory.java:1334) ... еще 40 мая 25, 2010 21:36:21 org.apache.catalina.core.StandardContext listenerStart SEVERE: исключение отправка события, инициализированного контекстом, экземпляр слушателя класса com.suzsoft.framework.spring.web.context.ContextLoaderListener org.springframework.beans.factory.BeanCreationException: Ошибка создания бина с именем 'Org.springframework.jms.listener.DefaultMessageListenerContainer # 0' определено в ресурсе ServletContext [/WEB-INF/config/spring/component/applicationContext-jms-activemq5.xml]: Ошибка вызова метода init; вложенное исключение java.lang.NoSuchMethodError: org.springframework.transaction.support.TransactionSynchronizationUtils.sameResourceFactory (Lorg / springframework / сделка / поддержка / ResourceTransactionManager; Ljava / языки / объекта;) Z в org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean (AbstractAutowireCapableBeanFactory.java:1337) в org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean (AbstractAutowireCapableBeanFactory.java:473) в org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory $ 1.run (AbstractAutowireCapableBeanFactory.java:409) в java.security.AccessController.doPrivileged (Native Метод) в org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean (AbstractAutowireCapableBeanFactory.java:380) в org.springframework.beans.factory.support.AbstractBeanFactory $ 1.getObject (AbstractBeanFactory.java:264) вorg.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton (DefaultSingletonBeanRegistry.java:221) в org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean (AbstractBeanFactory.java:261) в org.springframework.beans.factory.support.AbstractBeanFactory.getBean (AbstractBeanFactory.java:185) в org.springframework.beans.factory.support.AbstractBeanFactory.getBean (AbstractBeanFactory.java:164) в org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons (DefaultListableBeanFactory.java:429) в org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization (AbstractApplicationContext.java:729) в org.springframework.context.support.AbstractApplicationContext.refresh (AbstractApplicationContext.java:381) в org.springframework.web.context.ContextLoader.createWebApplicationContext (ContextLoader.java:255) в org.springframework.web.context.ContextLoader.initWebApplicationContext (ContextLoader.java:199) в org.springframework.web.context.ContextLoaderListener.contextInitialized (ContextLoaderListener.java:45) в com.suzsoft.framework.spring.web.context.ContextLoaderListener.contextInitialized (ContextLoaderListener.java:23) в org.apache.catalina.core.StandardContext.listenerStart (StandardContext.java:3934) в org.apache.catalina.core.StandardContext.start (StandardContext.java:4429) в org.apache.catalina.core.ContainerBase.addChildInternal (ContainerBase.java:791) в org.apache.catalina.core.ContainerBase.addChild (ContainerBase.java:771) в org.apache.catalina.core.StandardHost.addChild (StandardHost.java:526) в org.apache.catalina.startup.HostConfig.deployDirectory (HostConfig.java:987) в org.apache.catalina.startup.HostConfig.deployDirectories (HostConfig.java:909) в org.apache.catalina.startup.HostConfig.deployApps (HostConfig.java:495) в org.apache.catalina.startup.HostConfig.start (HostConfig.java:1206) в org.apache.catalina.startup.HostConfig.lifecycleEvent (HostConfig.java:314) в org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent (LifecycleSupport.java:119) в org.apache.catalina.core.ContainerBase.start (ContainerBase.java:1053) в org.apache.catalina.core.StandardHost.start (StandardHost.java:722) в org.apache.catalina.core.ContainerBase.start (ContainerBase.java:1045) в org.apache.catalina.core.StandardEngine.start (StandardEngine.java:443) в org.apache.catalina.core.StandardService.start (StandardService.java:516) в org.apache.catalina.core.StandardServer.start (StandardServer.java:710) в org.apache.catalina.startup.Catalina.start (Catalina.java:583) в sun.reflect.NativeMethodAccessorImpl.invoke0 (Native Метод) в sun.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:39) в sun.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:25) в java.lang.reflect.Method.invoke (Method.java:597) в org.apache.catalina.startup.Bootstrap.start (Bootstrap.java:288) в org.apache.catalina.startup.Bootstrap.main (Bootstrap.java:413) Вызванный: java.lang.NoSuchMethodError: org.springframework.transaction.support.TransactionSynchronizationUtils.sameResourceFactory (Lorg / springframework / сделка / поддержка / ResourceTransactionManager; Ljava / языки / объекта;) Z в org.springframework.jms.listener.AbstractPollingMessageListenerContainer.initialize (AbstractPollingMessageListenerContainer.java:190) в org.springframework.jms.listener.DefaultMessageListenerContainer.initialize (DefaultMessageListenerContainer.java:459) в org.springframework.jms.listener.AbstractJmsListeningContainer.afterPropertiesSet (AbstractJmsListeningContainer.java:135) вorg.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods (AbstractAutowireCapableBeanFactory.java:1368) в org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean (AbstractAutowireCapableBeanFactory.java:1334) ... еще 40

1 Ответ

1 голос
/ 26 мая 2010

Вот истинная проблема в этой трассировке стека:

java.lang.NoSuchMethodError: org.springframework.transaction.support.TransactionSynchronizationUtils.sameResourceFactory(Lorg/springframework/transaction/support/ResourceTransactionManager;Ljava/lang/Object;)Z at 

Проблема в том, что какая бы версия spring-tx jar у вас на пути к классам не содержала класс / метод TransactionSynchronizationUtils.sameResourceFactory. Насколько я могу судить, этот метод существовал в Spring 2.5.4 , но не существовал в Spring 2.5.3 . Я думаю, что вам нужно проверить ваш путь к классам, чтобы увидеть, какие версии различных Spring JAR вы на самом деле используете.

FWIW, ActiveMQ в настоящее время использует 2.5.6 для внутреннего использования, а предыдущий использовал Spring 2.5.5. Это то, что я могу вспомнить на макушке головы, а потом мне нужно было по-настоящему копать.

Надеюсь, это поможет.

Брюс

...