Reputation: 13
code partial:
@MessageMapping("/string")
@SendTo("topic/test2")
public String hello2(String a) throws Exception{
System.out.println(a);
Thread.sleep(2000);
//simpMessagingTemplate.convertAndSend("/topic/test2","Send From backend");
return "This is message 2";
}
<websocket:message-broker application-destination-prefix="/app" user-destination-prefix="/user">
<websocket:stomp-endpoint path="/websocket">
<websocket:sockjs/>
</websocket:stomp-endpoint>
<websocket:simple-broker prefix="/topic"/>
I send a message use sockJS and stomp.js.
var websocket = new SockJS('http://localhost:8080/todo/websocket');
var client = Stomp.over(websocket);
client.connect('benjamin','benjamin',function(msg){
client.send('/app/string',{},'string');
}
I recive message on server side but throw a exception:
org.springframework.messaging.converter.MessageConversionException: Could not read JSON: Unrecognized token 'string': was expecting ('true', 'false' or 'null')
at [Source: [B@31e018db; line: 1, column: 13]
Spring version 4.0.6-RELEASE
I read the code ,find spring has 3 message Converters, but when spring use
MappingJackson2MessageConverter.convertFromInternal
covert message throw this exception.should spring catch this exception and try use other coverters covert message? Is it a bug?
How can resolve it,someone can help me?
Upvotes: 1
Views: 804
Reputation: 68
I got de the question too. And I solve it by a bad method.
public class WebSocketConfig extends AbstractWebSocketMessageBrokerConfigurer {
.......
@Override
public boolean configureMessageConverters(List<MessageConverter> messageConverters) {
messageConverters.add(new StringMessageConverter());
messageConverters.add(new ByteArrayMessageConverter());
return false;
}
}
disable JsonConvertor
Upvotes: 1