我是这个消息队列的新手,刚刚开始学习一些基本的东西。
因此,对于我们的Spring Boot应用程序,我们遵循了contoller talks to service&service talks to repository这样的体系结构,所以在这里,我必须创建一个控制器,它将接受类DTO作为json,并将这些信息发布到apache Camel中指定的消息队列。我在跟踪这个链接!对于我的参考,工作良好,但当我试图实现它在我的项目,它说我一个错误列出如下。
误差
@RestController
@RequestMapping("/deviceinfo")
public class TrackerQueueController {
@Autowired
CamelContext camelContext;
@Autowired
private
ProducerTemplate producerTemplate;
@PostMapping()
public void startCamel(@RequestBody FieldUpdate fieldUpdate) {
producerTemplate.sendBody("activemq:topic:in", fieldUpdate);
}
}
@Component
public class TrackerQueueRoutes extends RouteBuilder {
@Override
public void configure() throws Exception {
from("activemq:topic:in")
.process(new TrackerProcessor() {
@Override
public void process(Exchange exchange) throws
Exception {
log.info("I'm in");
FieldUpdate body =
exchange.getIn().getBody(FieldUpdate.class);
log.info("Hello from camel processed message!
Received payload: {}" , body.getSerialNumber());
exchange.getOut().setHeader(Exchange.HTTP_RESPONSE_CODE,
HttpStatus.ACCEPTED);
}
});
}
}
处理机
public class TrackerProcessor implements Processor {
@Override
public void process(Exchange exchange) throws Exception {
}
}
可以任何一个提供给我一些教程链接,满足我的需要或任何想法。
正如Claus Ibsen在评论中建议的,您必须将这些依赖项添加到您的POM文件中
<dependency>
<groupId>org.apache.camel</groupId>
<artifactId>camel-spring-boot-starter</artifactId>
<version>[camel-version]</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
camel-spring-boot-starter
自动为您启动camelcontext
,发现路由等spring-boot-starter-web
通过侦听web请求来保持应用程序的运行。否则,它将在启动后立即关闭,因为没有任何可执行的内容。由于您的Camel route类被正确地注释(@component
)和子类(Extends RouteBuilder
),因此Camel SpringBoot Starter应该会自动发现它。
我是activeMQ的新手,在将消息从驻留在另一台服务器上的消息生成器推送到activeMQ定义的队列时遇到问题。 我在activeMQ上使用camel routes创建的应用程序中有几个队列。我尝试从另一台服务器上的应用程序对这些队列执行远程JNDI查找。我使用了来自http://activemq.apache.org/jndi-support.html页面的activemq文档片段。 我可以连
我是JMS新手,经过长时间的搜索,我搜索出了一个连接到JMS的代码,并发布了一条消息。 问题是我需要在远程队列中发布消息,但我不知道如何建立连接到它并发布消息。 服务器类型:TIBCO EMS 服务器主机:******。net 端口:**USername:user passsbrow:user123 队列:**。。。。顺序经营1. 我想建立连接,发布一条简单的消息,然后把它取回。请帮忙!提前谢谢
我正在努力寻找一个成熟的例子,说明如何在Spring Boot框架中使用ApacheCamel进行轮询。 我已经看过了:https://camel.apache.org/manual/latest/polling-consumer.html除此之外:https://camel.apache.org/components/latest/timer-component.html但是代码示例不够广泛,我
该消息已从队列中删除,但在我的应用程序日志中,我得到一个错误······ 如果我正确理解stacktrace,那么oracle.jms api缺少一个标头JMSXGroupSeq,这并不是不可能的,因为对方没有使用oracle jms api创建消息。他和我都无法查看实际的队列(它在我们共同的客户端),所以我无法检查真正到位的头。 使用自定义headerFilterStrategy没有任何帮助,因
我在 RabbitMQ 中创建新队列时遇到了一些问题。我只创建一个使用者客户端,该客户端将使用来自另一个微服务的消息。 这是我到目前为止所做的。 应用程序属性: 配置类: 和侦听器类: 当我运行这个程序时,我有一条ACCESS_REFUSED消息,但我不知道为什么。我错过了什么吗?? 谢谢
为什么已经拥有了共享内存时需要消息队列呢? 这将是多种原因,让我们将其分解为多个点来简化 - 据了解,一旦消息被一个进程接收到,它将不再可用于任何其他进程。 而在共享内存中,数据可供多个进程访问。 如果想使用小信息格式进行通信。 当多个进程同时进行通信时,共享内存数据需要同步保护。 使用共享内存的写入和读取频率很高,那么实现功能将会非常复杂。 在这种情况下不值得使用。 如果所有的进程不需要访问共享