Comunicação mqtt entre node.js e java

O objetivo é enviar dados usando o protocolo mqtt. O projeto Java (tempSensor) produz tempvalue usando o protocolo mqtt e o node.js que assinam o tempvalue usando o mqtt. O node.js e o projeto java usam a mesma chave para publicação / assinatura. Sou capaz de publicar dados usando o projeto java e também assinar dados no node.js. Mas os dados não estão no formato legível. Como fazer isso ? Para que os dados estejam em formato legível. A estrutura para TempStruct é a seguinte:

public class TempStruct implements Serializable {
private static final long serialVersionUID = 1L;

private double tempValue;

public double gettempValue() {
    return tempValue;
}

private String unitOfMeasurement;

public String getunitOfMeasurement() {
    return unitOfMeasurement;
}

public TempStruct(double tempValue, String unitOfMeasurement) {

    this.tempValue = tempValue;
    this.unitOfMeasurement = unitOfMeasurement;
}

public String toJSON() {
      String json = String.format("{'tempValue': %f, 'unitOfMeasurement': '%s'}", tempValue, unitOfMeasurement);
      return json;
    }
   }

O código que publicou dados usando o mqtt é o seguinte:

Logger.log(myDeviceInfo.getName(), "TemperatureSensor",
                "Publishing tempMeasurement");
        System.out.println("JSON Value...."+newValue.toJSON());
        try {
            this.myPubSubMiddleware.publish("tempMeasurement",
                    newValue.toJSON().getBytes("utf-8"), myDeviceInfo);
        } catch (UnsupportedEncodingException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }

O código que recebeu dados usando o mqtt é mostrado abaixo: (Node.js)

var mqtt=require('mqtt');
var client=mqtt.connect('mqtt://test.mosquitto.org:1883');
var data;
client.subscribe('tempMeasurement');
client.on('message',function(topic,payload){
//arg=JSON.stringify(arg);
console.log("In Message......");
var tempStruct = JSON.parse(payload);
console.log("tempValue: "+tempStruct.tempValue); 
 });

A captura instantânea de erro é mostrada abaixo:

questionAnswers(2)

yourAnswerToTheQuestion