2016-07-14 11 views
0

は、私は私が直接STOMPを介してメッセージを受信しようとしています(内部Tomcatをホスティング)他のWebサイトでのWebSocketとActiveMQの

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

以下のようJmsTemplateを使用してメッセージを送信するプログラムを持っている

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

    } 

今すぐHTMLから/topic/cdrserver/calls/121に接続しようとすると、メッセージは受信されますが、空の本文が表示されます

メッセージが問題だと思いますActiveMQに送信される前にシリアル化されません。これを克服する最善の方法は何ですか?

答えて

0

これは私がシリアル化の問題を解決するためにやっていることですが、私はそれが推奨される方法ですわからない、最初からメッセージをシリアライズすることができることは良いですが、今、このため

@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); 
} 
私の解決策であります