1
Also, das Problem: Ich muss einige benutzerdefinierte Wert in der Kopfzeile über Apache Camel/MQTT senden.MQTT/Camel/Benutzerdefinierte Header-Parameter
Code-Beispiel:
import java.util.Map;
import org.apache.camel.CamelContext;
import org.apache.camel.Message;
import org.apache.camel.impl.DefaultCamelContext;
public class MQTTEntryPoint {
private static final String BASE = "mqtt:test?host=tcp://ip_address&";
private static final String SUBSCRIBER = BASE + "subscribeTopicName=test2";
private static final String PUBLISHER = BASE + "publishTopicName=test2";
public static void main(String[] args) {
CamelContext camelContext = new DefaultCamelContext();
Thread thread = new Thread(new Runnable() {
@Override
public void run() {
Message message = camelContext.createConsumerTemplate().receive(SUBSCRIBER).getIn();
String body = message.getBody(String.class);
System.out.println(body);
Map<String, Object> headers = message.getHeaders();
for (String key : headers.keySet()) {
System.out.println("Header key: " + key + ", Header value: " + headers.get(key));
}
}
});
thread.start();
camelContext.createProducerTemplate().sendBodyAndHeader(PUBLISHER, "some body value", "headerKey",
"some header value");
}
}
In dem System heraus, dass ich nur sehen kann:
some body value
Header key: CamelMQTTSubscribeTopic, Header value: test2
Wie Sie sehen können, von benutzerdefinierten Header-Wert sendet nicht funktioniert. Was ist falsch?
Thx für die Antwort. Dies gilt auch für die 'sendBodyAndProperty' Methode? –
@AndrewSikorsky, Gibt es eine Umwandlung, die vorgenommen werden kann, um Header während einer Kamelroute einzuschließen? – Clocker