色综合图-色综合图片-色综合图片二区150p-色综合图区-玖玖国产精品视频-玖玖香蕉视频

您的位置:首頁技術(shù)文章
文章詳情頁

基于SpringBoot中activeMq的JmsTemplate的實(shí)例

瀏覽:5日期:2023-02-20 18:35:40
SpringBoot 中使用activeMq的步驟:1、pom中引入jar包:

<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-activemq</artifactId> </dependency> <dependency> <groupId>org.apache.activemq</groupId> <artifactId>activemq-pool</artifactId> <!-- <version>5.7.0</version> --> </dependency>2、spring boot配置文件中配置activeMq

spring.activemq.broker-url=tcp://localhost:61616spring.activemq.user=adminspring.activemq.password=adminspring.activemq.in-memory=truespring.activemq.pool.enabled=false3、Application 中添加對應(yīng)的bean生成規(guī)則

package com.telligen.ascertain; import org.apache.activemq.ActiveMQConnectionFactory;import org.springframework.boot.SpringApplication;import org.springframework.boot.autoconfigure.SpringBootApplication;import org.springframework.context.annotation.Bean;import org.springframework.jms.core.JmsMessagingTemplate;import org.springframework.jms.core.JmsTemplate; import javax.jms.ConnectionFactory; @SpringBootApplicationpublic class ApproveApplication { public static void main(String[] args) {SpringApplication.run(ApproveApplication.class, args);} @Beanpublic ConnectionFactory connectionFactory(){System.out.println('aaaaaaaaaaaaaaaaaaaaaa');ActiveMQConnectionFactory connectionFactory = new ActiveMQConnectionFactory();connectionFactory.setBrokerURL('tcp://localhost:61616');connectionFactory.setUserName('admin');connectionFactory.setPassword('admin');return connectionFactory;}@Beanpublic JmsTemplate genJmsTemplate(){System.out.println('aaaaaaaaaaaaaaaaaaaaaabbbbbbbbb');return new JmsTemplate(connectionFactory());}@Beanpublic JmsMessagingTemplate jmsMessageTemplate(){System.out.println('ccccccccccccc');return new JmsMessagingTemplate(connectionFactory());} }4、發(fā)送消息

package com.telligen.ascertain.approve.common.util.network;import org.apache.log4j.Logger;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.context.annotation.Scope;import org.springframework.jms.core.JmsMessagingTemplate;import org.springframework.stereotype.Component; @Component@Scope('singleton')public class ActiveMqUtil { private Logger logger = Logger.getLogger(ActiveMqUtil.class); @Autowired private JmsMessagingTemplate jmsMessagingTemplate; public void sendMsg(String destinationName ,String message){logger.info('發(fā)送 消息到消息隊(duì)列');jmsMessagingTemplate.convertAndSend(destinationName,message); }}

遇到的問題:

jmsMessagingTemplate 注入不成功,spring初始化錯誤,異常如下,只要按照步驟三就可以了:

Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name ’jmsTemplate’ defined in class path resource [org/springframework/boot/autoconfigure/jms/JmsAutoConfiguration$JmsTemplateConfiguration.class]: Bean instantiation via factory method failed; nested exception is org.springframework.beans.BeanInstantiationException: Failed to instantiate [org.springframework.jms.core.JmsTemplate]: Factory method ’jmsTemplate’ threw exception; nested exception is java.lang.NoSuchMethodError: org.springframework.jms.core.JmsTemplate.setDeliveryDelay(J)Vat org.springframework.beans.factory.support.ConstructorResolver.instantiateUsingFactoryMethod(ConstructorResolver.java:590)at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateUsingFactoryMethod(AbstractAutowireCapableBeanFactory.java:1256)at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1105)at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:543)at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:503)at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:317)at org.springframework.beans.factory.support.AbstractBeanFactory$$Lambda$112/1129944640.getObject(Unknown Source)at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222)at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:315)at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:199)at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:760)at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:869)at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:550)at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:759)at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:395)at org.springframework.boot.SpringApplication.run(SpringApplication.java:327)at org.springframework.boot.test.context.SpringBootContextLoader.loadContext(SpringBootContextLoader.java:139)at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContextInternal(DefaultCacheAwareContextLoaderDelegate.java:99)at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContext(DefaultCacheAwareContextLoaderDelegate.java:117)... 29 moreCaused by: org.springframework.beans.BeanInstantiationException: Failed to instantiate [org.springframework.jms.core.JmsTemplate]: Factory method ’jmsTemplate’ threw exception; nested exception is java.lang.NoSuchMethodError: org.springframework.jms.core.JmsTemplate.setDeliveryDelay(J)Vat org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:185)at org.springframework.beans.factory.support.ConstructorResolver.instantiateUsingFactoryMethod(ConstructorResolver.java:582)... 47 moreCaused by: java.lang.NoSuchMethodError: org.springframework.jms.core.JmsTemplate.setDeliveryDelay(J)Vat java.lang.invoke.MethodHandleNatives.resolve(Native Method)at java.lang.invoke.MemberName$Factory.resolve(MemberName.java:965)at java.lang.invoke.MemberName$Factory.resolveOrFail(MemberName.java:990)at java.lang.invoke.MethodHandles$Lookup.resolveOrFail(MethodHandles.java:1385)at java.lang.invoke.MethodHandles$Lookup.linkMethodHandleConstant(MethodHandles.java:1726)at java.lang.invoke.MethodHandleNatives.linkMethodHandleConstant(MethodHandleNatives.java:442)at org.springframework.boot.autoconfigure.jms.JmsAutoConfiguration$JmsTemplateConfiguration.mapTemplateProperties(JmsAutoConfiguration.java:91)at org.springframework.boot.autoconfigure.jms.JmsAutoConfiguration$JmsTemplateConfiguration.jmsTemplate(JmsAutoConfiguration.java:83)at org.springframework.boot.autoconfigure.jms.JmsAutoConfiguration$JmsTemplateConfiguration$$EnhancerBySpringCGLIB$$654aefcc.CGLIB$jmsTemplate$0(<generated>)at org.springframework.boot.autoconfigure.jms.JmsAutoConfiguration$JmsTemplateConfiguration$$EnhancerBySpringCGLIB$$654aefcc$$FastClassBySpringCGLIB$$6b82ee57.invoke(<generated>)at org.springframework.cglib.proxy.MethodProxy.invokeSuper(MethodProxy.java:228)at org.springframework.context.annotation.ConfigurationClassEnhancer$BeanMethodInterceptor.intercept(ConfigurationClassEnhancer.java:361)at org.springframework.boot.autoconfigure.jms.JmsAutoConfiguration$JmsTemplateConfiguration$$EnhancerBySpringCGLIB$$654aefcc.jmsTemplate(<generated>)at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)at java.lang.reflect.Method.invoke(Method.java:483)at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:154)... 48 moreSpringboot整合activemq時報(bào)jmsMessagingTemplate未加載錯誤

錯誤現(xiàn)象

Bean method ‘jmsMessagingTemplate’ in ‘JmsAutoConfiguration.MessagingTemplateConfiguration’ not loaded because Ancestor org.springframework.boot.autoconfigure.jms.JmsAutoConfiguration did not match

網(wǎng)上解決方案

網(wǎng)上最多的方案是:application.properties中配置項(xiàng)的行尾有空格。檢查沒有,排除了這種可能。

第二種解決方案是:按如下方式將配置spring.activemq.pool.enabled改為false

spring.activemq.pool.enabled=false

啟動springboot是不報(bào)錯了,但是要發(fā)的消息也沒進(jìn)隊(duì)列。至于為什么就不報(bào)錯了,還沒搞明白。如有高人請指點(diǎn)一二。

解決方案

查看ActiveMQConnectionFactoryConfiguration類,自動配置發(fā)現(xiàn)需要引入下面這個依賴:

<dependency> <groupId>org.messaginghub</groupId><artifactId>pooled-jms</artifactId><version>1.0.3</version> </dependency>

將依賴引入pom,再啟動springboot,搞定!

以上為個人經(jīng)驗(yàn),希望能給大家一個參考,也希望大家多多支持好吧啦網(wǎng)。

標(biāo)簽: Spring
相關(guān)文章:
主站蜘蛛池模板: 91视频社区| 永久黄网站色视频免费网站 | 免费91最新地址永久入口 | 亚洲视频在线一区 | 成人禁在线观看午夜亚洲 | 国产中文字幕视频在线观看 | 91精品国产手机在线版 | 大尺度福利视频在线观看网址 | 黄a视频| 一级欧美过瘾大片 | 亚洲高清成人欧美动作片 | 欧美另类视频一区二区三区 | 香蕉久久精品国产 | 成年美女黄网站小视频 | 欧美在线黄 | 成人午夜在线视频 | 91成人爽a毛片一区二区 | 亚洲成在人线久久综合 | 国产亚洲欧美日韩综合综合二区 | 国产午夜精品理论片免费观看 | 午夜伦4480yy妇女久久久 | 国产黄色自拍 | 韩国一级特黄毛片大 | 国内精品2020情侣视频 | 激情欧美一区二区三区 | 日韩精品在线免费观看 | 国产女王女m视频vk 国产女王丨vk | 久久黄色精品视频 | 特级毛片8级毛片免费观看 特级毛片免费观看视频 | 91精品人成在线观看 | 欧美一级视频免费观看 | 在线日韩欧美 | 一级一黄在线观看视频免费 | 91成人免费观看在线观看 | 九九亚洲视频 | 久久久亚洲欧美综合 | 亚洲精品一级一区二区三区 | 泰国一级毛片aaa下面毛多 | 亚洲性久久 | 精品成人免费一区二区在线播放 | 精品一区二区三区波多野结衣 |