【发布时间】:2014-04-01 19:09:00
【问题描述】:
我目前正在尝试使用 Glassfish 4(使用 Jersery 2.0 和 EclipseLink 2.5)解组通过 REST PUT 提供的 JSON 对象。
JSON 对象由多个属性组成,包括映射到 Java 枚举的字符串值。
除了在负载中提供了无效的 ENUM 值之外,一切都按预期工作
JSON 对象:
{
"rating":"INVALID",
...
}
被解组为:
public RatingInfo {
@ValidRating
private Rating rating;
...
public Rating getRating(){...}
public void setRating(Rating rating){...}
...
}
public enum Rating {
G,
PG
}
如果 JSON 有效负载中的值不是有效的 Rating,它当前返回 null,这似乎是 JAXB 忽略转换错误的结果,请参阅 Handling invalid enum values while doing JAXB Unmarshalling
问题是我需要区分 Rating 实际上为 null 的情况(这是有效的用例)与 JSON 中的 Rating 值无效的情况,以便我可以在 REST 响应中返回 400 错误。
当使用 JAX-RS 和 MOXy 作为默认提供程序时,我不知道该怎么做是覆盖忽略转换错误的默认行为。
【问题讨论】:
标签: java json jaxb moxy glassfish-4