Spark Java IllegalArgumentException:class org.eclipse.jetty.server.handler.ErrorHandler声明了多个名为_listeners的JSON字段

问题描述 投票:0回答:1

我正在使用Java Spark开发一个简单的项目,目前我正在尝试实现一些RESTful服务。我有这个帖子方法:

post("/users", (request, response) -> {
        response.type("application/json");
        User user = new Gson().fromJson(request.body(),User.class);
        userService.addUser(user);
        return new Gson().toJson(response);
    });

我正在使用邮递员来指定请求的正文:

{   "id": "1012", 
"name": "Mac",
"lastname": "Mason1",
"email": "email"
}

User类是:

 public class User {

public int id;
public String name;
public String lastname;
public String email;

public User (int id, String name, String lastname, String email) {
    this.id = id;
    this.name = name;
    this.lastname = lastname;
    this.email = email;
}

每当我尝试发布帖子请求时,会弹出以下错误:

ERROR spark.http.matching.GeneralError - 
java.lang.IllegalArgumentException: class 
org.eclipse.jetty.server.handler.ErrorHandler declares multiple JSON fields 
named _listeners
java post spark-java
1个回答
1
投票
return new Gson().toJson(response);

此代码尝试将response对象序列化为JSON。这可能是一个错字(当然你的意思是return new Gson().toJson(user);,或者完全不同的东西)并且因为Gson试图递归序列化response的类层次结构中的所有字段而失败。

© www.soinside.com 2019 - 2024. All rights reserved.