2016-07-14 20 views
0

Ich habe ein Programm, das Nachrichten mit JmsTemplate wie untenwebsocket und ActiveMQ

@Override 
    public void send(SonusCDR cdr) { 
     jmsTemplate.setPubSubDomain(true); 
     jmsTemplate.convertAndSend("cdrserver/calls/" + cdr.getIncomingCallingNumber() , new BaseCDRMessage(cdr)); 
    } 

auf einer anderen Website (Hosting innerhalb tomcat) senden Ich versuche, die Nachricht direkt über STOMP

@Override 
    public void configureMessageBroker(MessageBrokerRegistry config) { 
     config.enableStompBrokerRelay("/topic", "/queue") 
       .setRelayHost("192.168.70.149") 
       .setRelayPort(61613); 
     config.setApplicationDestinationPrefixes("panel"); 

    } 

zu erhalten jetzt, wenn ich versuche, eine Verbindung von HTML zu /topic/cdrserver/calls/121, ich bekomme die Nachricht, aber mit leeren Körper

Ich denke, das Problem ist, dass die Nachricht ist nicht serialisiert, bevor es an ActiveMQ gesendet wird. Was ist der beste Weg, dies zu überwinden?

Antwort

0

Dies ist, was ich habe die Serialisierung Problem fertig zu beheben, aber ich bin nicht sicher, ob es der empfohlene Weg ist, von Anfang an die Nachricht Serialisierung aber jetzt besser ist, kann dies ist meine Lösung

@JmsListener(destination = "cdrserver/calls") 
public void receiveMessage1(BaseCDRMessage cdrMessage) { 
    cdrMonitorService.sendCDR(cdrMessage); 
} 


@Override 
public void sendCDR(BaseCDRMessage cdrMessage) { 
    messagingTemplate.convertAndSend("/topic/panel/calls/" + cdrMessage.getIncomingCallingNumber(),cdrMessage); 
}