我正在客户端用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(ListlistIds) { if (!listIds.isEmpty()) { for(ListId listId: listIds) { } }
所以我得到一个java.lang.ClassCastException:java.util.LinkedHashMap无法强制转换为com.blah.ListId
然而,当我使用RestMapping使用普通的Spring控制器时,它工作正常,是否有任何弹簧MessageMapping注释将对象映射到java的方式与传统方式不同我不知道为什么不转换为ListID