我的代码:
from("azure-eventhubs:? connectionString=RAW(<CONNECTION_STRING>)&credentialType=CONNECTION_ STRING&blobContainerName=BLOCB&blobAccountName=ACNAME&blobAccessKey=RAW(<<KEY>>)").process(exchange -> { String body = exchange.getIn().getBody(String.class);
exchange.getIn().setHeader(EventHubsConstants.PARTITION_ID, 4);
System.out.println(body);
System.out.println("Message received successfully");
}).to("mock:result");
这里我已经重现了上述问题并给出了所需的结果。
MessageReceiver.java:
package camel.sample;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Component;
@Component
public class MessageReceiver {
private static final Logger logger = LoggerFactory.getLogger(MessageReceiver.class);
public void onMessage(String message) {
logger.info("Received: {}", message);
}
}
EventhubsRouteBuilder.java:
package camel.sample;
import org.apache.camel.builder.endpoint.EndpointRouteBuilder;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;
@Component
public class EventhubsRouteBuilder extends EndpointRouteBuilder {
@Value("${namespaceName}")
private String namespaceName;
@Value("${eventhubsName}")
private String eventhubsName;
@Autowired
private MessageReceiver receiver;
@Override
public void configure() {
from(timer("tick")
.period(1000))
.setBody(constant("Event Test"))
.to(azureEventhubs(namespaceName + "/" + eventhubsName));
from(azureEventhubs(namespaceName + "/" + eventhubsName))
.bean(receiver)
.log("The content is ${body}");
}
}
Pom.xml:
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.apache.camel.springboot.example</groupId>
<artifactId>camel-example-spring-boot-azure</artifactId>
<version>4.6.0-SNAPSHOT</version>
</parent>
<artifactId>camel-example-spring-boot-azure-eventhubs</artifactId>
<name>Camel SB Examples :: Azure Event Hubs</name>
<description>An example showing how to work with Camel, Azure Event Hubs and Spring Boot</description>
<properties>
<category>Cloud</category>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
</dependency>
<!-- Camel -->
<dependency>
<groupId>org.apache.camel.springboot</groupId>
<artifactId>camel-spring-boot-starter</artifactId>
</dependency>
<dependency>
<groupId>org.apache.camel.springboot</groupId>
<artifactId>camel-azure-eventhubs-starter</artifactId>
</dependency>
<dependency>
<groupId>org.apache.camel</groupId>
<artifactId>camel-endpointdsl</artifactId>
<version>${project.version}</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<version>${spring-boot-version}</version>
<executions>
<execution>
<goals>
<goal>repackage</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
</project>
收到消息:
参考: