desperado
desperado

Reputation: 13

spring4.0 websocket issue

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

Answers (1)

zhaohaifeng
zhaohaifeng

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

Related Questions