2016-04-15 4 views
1

問題: Apache Camel/MQTT経由でヘッダーにカスタム値を送信する必要があります。MQTT/Camel /カスタムヘッダーパラメーター

コード例:システムで

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"); 

    } 
} 

アウト私は見ることができます:あなたが見ることができるようにカスタムヘッダー値の送信、

some body value 
Header key: CamelMQTTSubscribeTopic, Header value: test2 

はない作品を行います。なにが問題ですか?

答えて

0

MQTTプロトコルAFAIRは、追加ヘッダーなしで単一ペイロードのみをサポートします。

+0

返信用Thx。 これは 'sendBodyAndProperty'メソッドにも当てはまりますか? –

+0

@AndrewSikorsky、ラクダのルートにいる間にヘッダーを含めることができる変換はありますか? – Clocker