当前位置:  开发笔记 > 编程语言 > 正文

Spring websocket @messagemapping反序列化问题java.lang.ClassCastException:java.util.LinkedHashMap无法强制转换

如何解决《Springwebsocket@messagemapping反序列化问题java.lang.ClassCastException:java.util.LinkedHashMap无法强制转换》经验,为你挑选了0个好方法。

我正在客户端用StompJS编写一个spring websocket应用程序.

在客户端,我打算发送一个对象列表,并在服务器端映射到java对象时,它将自身转换为LinkedHashMap

我的客户端代码是

function stomball() {
         stompClient.send("/brkr/call", {}, JSON.stringify(listIds));
     }

Listids看起来像

[{
    "path": "/a/b/c.txt",
    "id": 12
}, {
    "path": "/a/b/c/d.txt",
    "id": 13
}]

List Id对象看起来像

public class ListId {

    private String path;

    private Long id;

    //getters and setters...
}

控制器看起来像这样

@MessageMapping("/call" )
@SendTo("/topic/showResult")
public RetObj process(List listIds) {
   if (!listIds.isEmpty()) {
        for(ListId listId: listIds) {

        }
}

所以我得到一个java.lang.ClassCastException:java.util.LinkedHashMap无法强制转换为com.blah.ListId

然而,当我使用RestMapping使用普通的Spring控制器时,它工作正常,是否有任何弹簧MessageMapping注释将对象映射到java的方式与传统方式不同我不知道为什么不转换为ListID

推荐阅读
罗文彬2502852027
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有