Spark Java IllegalArgumentException: class org.eclipse.jetty.server.handler.ErrorHandler 声明了多个名为 _listeners 的 JSON 字段
Spark Java IllegalArgumentException: class org.eclipse.jetty.server.handler.ErrorHandler declares multiple JSON fields named _listeners
我正在使用 Java Spark 开发一个简单的项目,目前我正在尝试实现一些 RESTful 服务。我有这个 post 方法:
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);
});
我正在使用 postman 来指定请求的主体:
{ "id": "1012",
"name": "Mac",
"lastname": "Mason1",
"email": "email"
}
而用户 class 是:
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;
}
每当我尝试执行 post 请求时,都会弹出以下错误:
ERROR spark.http.matching.GeneralError -
java.lang.IllegalArgumentException: class
org.eclipse.jetty.server.handler.ErrorHandler declares multiple JSON fields
named _listeners
return new Gson().toJson(response);
此代码试图将 response
对象序列化为 JSON。这可能是一个错字(当然你的意思是 return new Gson().toJson(user);
,或者完全不同的东西)并且由于 Gson 尝试递归序列化 response
的 class 层次结构中的所有字段的方式而失败。
我正在使用 Java Spark 开发一个简单的项目,目前我正在尝试实现一些 RESTful 服务。我有这个 post 方法:
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);
});
我正在使用 postman 来指定请求的主体:
{ "id": "1012",
"name": "Mac",
"lastname": "Mason1",
"email": "email"
}
而用户 class 是:
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;
}
每当我尝试执行 post 请求时,都会弹出以下错误:
ERROR spark.http.matching.GeneralError -
java.lang.IllegalArgumentException: class
org.eclipse.jetty.server.handler.ErrorHandler declares multiple JSON fields
named _listeners
return new Gson().toJson(response);
此代码试图将 response
对象序列化为 JSON。这可能是一个错字(当然你的意思是 return new Gson().toJson(user);
,或者完全不同的东西)并且由于 Gson 尝试递归序列化 response
的 class 层次结构中的所有字段的方式而失败。