Я пытаюсь получить данные из простого объекта ajax. Я возвращаю такие объекты много раз, но этот дает мне
GET http://localhost:8080/loggedUsers net::ERR_INCOMPLETE_CHUNKED_ENCODING
С ошибкой на сервере ...
java.lang.StackOverflowError
at java.lang.Exception.<init>(Exception.java:66)
at java.io.IOException.<init>(IOException.java:58)
at com.fasterxml.jackson.core.JsonProcessingException.<init>(JsonProcessingException.java:25)
at com.fasterxml.jackson.core.JsonProcessingException.<init>(JsonProcessingException.java:41)
at com.fasterxml.jackson.databind.JsonMappingException.<init>(JsonMappingException.java:251)
at com.fasterxml.jackson.databind.ser.std.BeanSerializerBase.serializeFields(BeanSerializerBase.java:734)
at com.fasterxml.jackson.databind.ser.BeanSerializer.serialize(BeanSerializer.java:155)
.... много раз
Если я поставлю точку останова на возврате, кажется, все, что я хочу, будет там. И есть только 1 пользователь, так что данных не так много.
Контроллер
@RequestMapping(value = "/loggedUsers", method = RequestMethod.GET)
public @ResponseBody List<User> getLoggedUsers() {
Map<String,User> users = User.getUsers().stream().collect(Collectors.toMap(User::getUsername, Function.identity()));
List<User> onlineUsers = new ArrayList<>();
for(String username : activeUsers.getUsers()) {
User user = users.get(username);
if (user != null) {
onlineUsers.add(user);
}
}
return onlineUsers;
}
AJAX
//get loggedUsers
$.ajax({
url: '/loggedUsers',
type: 'get',
success: function (loggedUsers) {
console.info(loggedUsers);
}
});
Не могли бы вы также прикрепить класс User? Я думаю, это может быть внутренняя ссылка на пользователя как на поле класса
Возможный дубликат Как решить эту бесконечную рекурсию (StackoverflowError), когда я использую метод writeValueAsString () класса Jackson ObjectMapper ()?



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Если у вас есть внутренняя ссылка на пользователя в пользовательском классе, вы можете игнорировать эти свойства (например, используя аннотацию @JsonIgnore) и предотвратить переполнение стека, для более подробной информации: http://www.baeldung.com/jackson-ignore-properties-on-serialization
У пользовательского объекта есть decodedImage, который представляет собой большую строку String64, но я не думаю, что это будет проблемой ...