Piszę aplikację websocket wiosną ze StompJS po stronie klienta.Spring websocket @messagemapping problem de-serializacji java.lang.ClassCastException: java.util.LinkedHashMap nie można obsłużyć
Po stronie klienta Mam zamierza wysłać listę obiektów i po stronie serwera, gdy jest to mapowanie do obiektu java, to zamienia się w LinkedHashMap
Mój kod po stronie klienta jest
function stomball() {
stompClient.send("/brkr/call", {}, JSON.stringify(listIds));
}
Listids wygląda
[{
"path": "https://stackoverflow.com/a/b/c.txt",
"id": 12
}, {
"path": "https://stackoverflow.com/a/b/c/d.txt",
"id": 13
}]
Lista Id obiekt wygląda
public class ListId {
private String path;
private Long id;
//getters and setters...
}
Kontroler wygląda następująco
@MessageMapping("/call")
@SendTo("/topic/showResult")
public RetObj process(List<ListId> listIds) {
if (!listIds.isEmpty()) {
for(ListId listId: listIds) {
}
}
Więc dostać java.lang.ClassCastException: java.util.LinkedHashMap nie mogą być oddane do com.blah.ListId
Jednakże gdy zrobić to samo z normalnym Spring Controller z RestMapping działa dobrze, Czy jest coś ze sprężynami Adnotacja MessageMapping, która mapuje obiekty do java inaczej niż w tradycyjny sposób Nie jestem pewien, dlaczego nie jest przesyłany do ListID
Czy możesz pokazać nam, gdzie skonfigurowano twój obiekt obiektowy? – Andreas
Czy Twój ListId jest możliwy do serializacji? – Andreas
Objectmapper jest skonfigurowany jako ListId nie jest możliwy do serializacji, dodałem serializację i uruchamiam ten sam problem .. –
user1707141