Dropwizard returns 400 有效 GET
Dropwizard returns 400 on valid GET
我正在开发 Dropwizard app and am facing a strange bug on a GET request after I have included mongojack。
我有一个简单的 GET 查询,其中 ID 作为路径参数。它在我包含 mongojack 并向我的实体添加两个注释之前起作用:
public class Bill {
@javax.persistence.Id @org.mongojack.ObjectId
private String id;
@javax.persistence.Id @org.mongojack.ObjectId
public String getId() { return id; }
//...
}
最让我疑惑的是这个请求竟然被接受了。当我调试时,我可以进入方法。该实体从 MongoDB 加载到内存中并且看起来很好。所以我怀疑这实际上可能是序列化问题,但目前我被卡住了。有什么想法吗?
更新
似乎是一个已知的 mongojack 问题:https://github.com/devbliss/mongojack/issues/26。后来我想为我的 GET 使用不带 ObjectId 的自定义 DTO,所以这应该不再相关了。我仍然不明白的是为什么 Dropwizard 将此映射到 400 响应...
What I still don't understand is why Dropwizard maps this to a 400 response
如您所知,Dropwizard 通过 Jackson 使用所有 getter(或 @JsonProperty
注释 fields/methods)生成 JSON。如果 getter(或反序列化时的 setter)发生任何异常,dropwizard 会自动 returns 400 Bad Request
.
我想这是有道理的,因为它需要简单的 POJO DTO 和愚蠢的 getter 和 setter。
我正在开发 Dropwizard app and am facing a strange bug on a GET request after I have included mongojack。
我有一个简单的 GET 查询,其中 ID 作为路径参数。它在我包含 mongojack 并向我的实体添加两个注释之前起作用:
public class Bill {
@javax.persistence.Id @org.mongojack.ObjectId
private String id;
@javax.persistence.Id @org.mongojack.ObjectId
public String getId() { return id; }
//...
}
最让我疑惑的是这个请求竟然被接受了。当我调试时,我可以进入方法。该实体从 MongoDB 加载到内存中并且看起来很好。所以我怀疑这实际上可能是序列化问题,但目前我被卡住了。有什么想法吗?
更新
似乎是一个已知的 mongojack 问题:https://github.com/devbliss/mongojack/issues/26。后来我想为我的 GET 使用不带 ObjectId 的自定义 DTO,所以这应该不再相关了。我仍然不明白的是为什么 Dropwizard 将此映射到 400 响应...
如您所知,What I still don't understand is why Dropwizard maps this to a 400 response
Dropwizard 通过 Jackson 使用所有 getter(或 @JsonProperty
注释 fields/methods)生成 JSON。如果 getter(或反序列化时的 setter)发生任何异常,dropwizard 会自动 returns 400 Bad Request
.
我想这是有道理的,因为它需要简单的 POJO DTO 和愚蠢的 getter 和 setter。