- ubuntu12.04环境下使用kvm ioctl接口实现最简单的虚拟机
- Ubuntu 通过无线网络安装Ubuntu Server启动系统后连接无线网络的方法
- 在Ubuntu上搭建网桥的方法
- ubuntu 虚拟机上网方式及相关配置详解
CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.
这篇CFSDN的博客文章基于SpringBoot中activeMq的JmsTemplate的实例由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.
1
2
3
4
5
6
7
8
9
10
11
12
13
|
<
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
>
|
1
2
3
4
5
|
spring.activemq.broker-url=tcp:
//localhost:61616
spring.activemq.user=admin
spring.activemq.password=admin
spring.activemq.in-memory=
true
spring.activemq.pool.enabled=
false
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
|
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;
@SpringBootApplication
public
class
ApproveApplication {
public
static
void
main(String[] args) {
SpringApplication.run(ApproveApplication.
class
, args);
}
@Bean
public
ConnectionFactory connectionFactory(){
System.out.println(
"aaaaaaaaaaaaaaaaaaaaaa"
);
ActiveMQConnectionFactory connectionFactory =
new
ActiveMQConnectionFactory();
connectionFactory.setBrokerURL(
"tcp://localhost:61616"
);
connectionFactory.setUserName(
"admin"
);
connectionFactory.setPassword(
"admin"
);
return
connectionFactory;
}
@Bean
public
JmsTemplate genJmsTemplate(){
System.out.println(
"aaaaaaaaaaaaaaaaaaaaaabbbbbbbbb"
);
return
new
JmsTemplate(connectionFactory());
}
@Bean
public
JmsMessagingTemplate jmsMessageTemplate(){
System.out.println(
"ccccccccccccc"
);
return
new
JmsMessagingTemplate(connectionFactory());
}
}
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
|
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(
"发送 消息到消息队列"
);
jmsMessagingTemplate.convertAndSend(destinationName,message);
}
}
|
遇到的问题:
jmsMessagingTemplate 注入不成功,spring初始化错误,异常如下,只要按照步骤三就可以了:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
|
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)V
at 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
more
Caused 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)V
at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:
185
)
at org.springframework.beans.factory.support.ConstructorResolver.instantiateUsingFactoryMethod(ConstructorResolver.java:
582
)
...
47
more
Caused by: java.lang.NoSuchMethodError: org.springframework.jms.core.JmsTemplate.setDeliveryDelay(J)V
at 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
more
|
错误现象 。
Bean method ‘jmsMessagingTemplate' in ‘JmsAutoConfiguration.MessagingTemplateConfiguration' not loaded because Ancestor org.springframework.boot.autoconfigure.jms.JmsAutoConfiguration did not match 。
网上解决方案 。
网上最多的方案是:application.properties中配置项的行尾有空格。检查没有,排除了这种可能.
第二种解决方案是:按如下方式将配置spring.activemq.pool.enabled改为false 。
1
|
spring.activemq.pool.enabled=
false
|
启动springboot是不报错了,但是要发的消息也没进队列。至于为什么就不报错了,还没搞明白。如有高人请指点一二.
查看ActiveMQConnectionFactoryConfiguration类,自动配置发现需要引入下面这个依赖:
1
2
3
4
5
|
<
dependency
>
<
groupId
>org.messaginghub</
groupId
>
<
artifactId
>pooled-jms</
artifactId
>
<
version
>1.0.3</
version
>
</
dependency
>
|
将依赖引入pom,再启动springboot,搞定! 。
以上为个人经验,希望能给大家一个参考,也希望大家多多支持我.
原文链接:https://blog.csdn.net/xiaoluo5238/article/details/81202642 。
最后此篇关于基于SpringBoot中activeMq的JmsTemplate的实例的文章就讲到这里了,如果你想了解更多关于基于SpringBoot中activeMq的JmsTemplate的实例的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。
我已经尝试运行简单的 spring jmstemplate 示例。这里是发件人的源代码, import javax.jms.Destination; import javax.jms.JMSExcep
我正在使用 Spring Boot 2.1.6 构建 REST API 应用程序。我想在我的应用程序中使用 JMS 消息传递和 Active MQ 包 (org.apache.activemq)。我有
我一直在寻找一些文档/示例来检查动态创建的主题是否存在,如果存在,如何获取该主题的订阅者计数。 我使用以下代码向主题发送消息 - jmsTemplate.send(destination, new M
到目前为止,我只能在 jms 连接工厂中找到并发设置: 是否可以配置单个队列的消费者数量?即类似: 谢谢!~ 最佳答案 不要使用命名空间,而是使用抽象父级 DefaultMessageLi
我有 JMS 应用程序 和 IBM MQ jars 配置,使用 spring 它在正确的队列信息下运行良好,但是当我提供错误的队列信息时 卡在 LOG.info("SENDING MESSAGE");
我正在尝试将消息头插入 amq。 JMSTemplate 中没有特定方法用于在 amq 中设置 header。当我这样设置时,它将保存在 StringProperty 而不是标题。保存到标题如何传递数
我想从 jmsTemplate.sendAndReceive 获取同步响应: Message responseMessage = producer.produceAndReceive(gzip
我想为连接到 ActiveMQ 代理的多个生产者共享 JMSTemplate 的单个实例。示例配置: 我可以使用上面的配置吗? 正如这里提到的:http://docs.sp
我正在使用 Spring boot,我想动态创建多个 JMS 模板,因为我想连接到不同的 JMS 实例。我知道使用注释的标准方法,将 ConnectionFactory 链接到 JMSTemplate
我的服务方法如下所示,我试图模拟 JmsTemplate 以便它可以在单元测试期间发送消息,但它不执行 jmsTemplate.send(...),它直接转到下一行,怎么可能我使用单元测试执行我的服务
我们当前使用 JmsTemplate 的 send(Destination, messageCreator) 方法将消息发送到 webMethods 队列。然而,有时 send 方法需要很长时间才能返
我编写了一个在 Glassfish 中的 Web 服务中运行的 JMS 应用程序(也将其部署在 JBoss 中),我注意到在我通过 MessageListener MDP 处理多条消息后,JMS 服务
我正在使用 Spring API 的 JmsTemplate 和 MappingJackson2MessageConverter(版本:spring-jms-4.3.4.RELEASE.jar)来发布
我刚刚重构了一些发布到 JMS 主题的代码以使用 Spring 的 JmsTemplate 类,现在我收到一个异常,指出我未通过身份验证。 之前我创建了工厂,建立了连接,然后是 session 等,如
需要模拟 JmsTemplate 以在我的应用程序中进行集成测试。 在我的 appcontext.xml 中
我需要在特定时间后删除一条消息,所以我启用了 explicitQosEnabled 并设置了生存时间。 但我注意到消息已被删除,但它花费的时间比指定的时间(一分钟)长,所以以前有人遇到过这个问题吗?
我相信我搞砸了配置,但我不知道在哪里以及如何修复它。 Here你可以找到代码。 org.springframework.jms.UncategorizedJmsException: Uncategor
我正在探索 jmsTemplate 实现并遇到一个问题。可以手动将 JMSMessageId 应用于消息,但回调会返回不同的 MessageId。 示例代码: log.debug("Sending r
在 asyncSend 设置为 true 的情况下发送持久消息是否有最佳实践或指南。 我们没有配置事务管理器 我们有 ~40k-50k 消息,这些消息是使用配置有 的 jmsTemplate 发送的
我有发送到 IBM MQ 队列的 JMS 消息,如果远程客户端(我无法控制远程客户端)在给定的时间(比如 1 分钟)内没有使用消息,消息应该过期(我有过期部分工作,“MQ 删除消息”在 JMSTemp
我是一名优秀的程序员,十分优秀!