Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/355.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
未调用Java Spring STOMP消息映射_Java_Spring_Spring Mvc_Jackson_Stomp - Fatal编程技术网

未调用Java Spring STOMP消息映射

未调用Java Spring STOMP消息映射,java,spring,spring-mvc,jackson,stomp,Java,Spring,Spring Mvc,Jackson,Stomp,我正在尝试让我的websocket客户端(浏览器)向我的服务器发送消息。服务器应使用@MessageMapping注释捕获消息,如下所示: @Controller public class GameController { @MessageMapping("/game/{id}") public void onMessage(@DestinationVariable String id,Message message) { System.out.println(

我正在尝试让我的websocket客户端(浏览器)向我的服务器发送消息。服务器应使用
@MessageMapping
注释捕获消息,如下所示:

@Controller
public class GameController {

    @MessageMapping("/game/{id}")
    public void onMessage(@DestinationVariable String id,Message message) {
        System.out.println("reached");
        System.out.println(id);
        System.out.println(message);
    }

}
上面的代码段工作正常,因为“Message”对象来自org.springframework.messaging.Message

但是,当我尝试将传入消息转换为我自己的POJO时,如下所示:

@MessageMapping("/game/{id}")
    public void onMessage(@DestinationVariable String id,ChatMessage message) {
        System.out.println("reached");
        System.out.println(id);
        System.out.println(message);
}
不再调用该函数。阅读后,看起来我们可以定义POJO来封装JSON字符串,@MessageMapping应该自动将JSON转换为我们的自定义Java对象,但它对我不起作用(没有调用MessageMapping函数)

我想知道是否有人能为我指出问题所在的大致方向。需要注意的是,教程使用了SpringBoot,但我使用的是SpringMVC。我怀疑SpringBoot可能有一些我没有的自动配置属性,但我已经尝试配置我自己的Jackson ObjectMapper并在WebSocketConfig中注册它(不起作用)


任何帮助都将不胜感激

因此,我没有使用自己的对象作为参数,而是应该将其作为泛型类型使用,如下所示:

@MessageMapping("/game/{id}")
public void onMessage(@DestinationVariable String id,Message<ChatMessage> message) {
        //Now we can get our ChatMessage object like so
        ChatMessage m = message.getPayload();
}
@MessageMapping(“/game/{id}”)
消息(@DestinationVariable字符串id,消息消息消息)上的公共无效{
//现在我们可以像这样得到我们的ChatMessage对象
ChatMessage m=message.getPayload();
}

其中ChatMessage是映射到JSON输入的自定义对象

您解决过这个问题吗?是的!我补充了一个答案