【问题标题】:java.lang.StackOverflowError Jquery/Javajava.lang.StackOverflowError Jquery/Java
【发布时间】:2018-04-17 15:17:58
【问题描述】:

我正在尝试从一个简单的 ajax 对象中获取一些数据。我多次返回这样的对象,但这个对象给了我

GET http://localhost:8080/loggedUsersnet::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)

....无数次

如果我在 return 上设置一个断点,我想要的一切似乎都在那里。而且只有 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.log(loggedUsers);    
    }
});

【问题讨论】:

标签: javascript java jquery spring


【解决方案1】:

如果您在用户类中有对 User 的内部引用,您可以忽略该属性(例如使用 @JsonIgnore 注释)并防止堆栈溢出,更多详细信息:http://www.baeldung.com/jackson-ignore-properties-on-serialization

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-08-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多