我有一个用 @NotNull 注释的字段,当我将 JSON 传递到缺少该字段的 Rest 资源时,它会继续。
根据我对文档的理解,除了进行简单验证之外,我不需要任何其他东西。
据我所知,我已经准备好了一切,但不确定我缺少什么。使用Java 8、Jersey 2.8、maven tomcat7插件。
@Path("/trade")
public class TradeEndpoint {
@Autowired
private OrderFillService orderFillService;
@POST
@Path("limit")
@Consumes({ MediaType.APPLICATION_JSON })
public void limitOrder(@Valid LimitOrderModel limitOrder) {
placeTrade(limitOrder);
}
...
}
public class LimitOrderModel {
@NotNull
private String symbol;
...
}
我设置属性以将错误发送回客户端:
public Application () {
packages("com.foo.web.endpoint");
register(JacksonFeature.class);
property(ServerProperties.BV_SEND_ERROR_IN_RESPONSE, "true");
}
我依赖于 jersey-bean-validation:
<dependency>
<groupId>org.glassfish.jersey.ext</groupId>
<artifactId>jersey-bean-validation</artifactId>
<version>2.21</version>
</dependency>
发布此 JSON 有效(执行 placeTrade()):
{
"limitPrice":"60",
"side":"SELL",
"quantity":"100"
}
最佳答案
发现问题了。我使用的是 Jersey 2.8(让 Jackson 的生活更轻松),但我依赖于 Jersey-Bean-validation 2.21。降级到 jersey-bean-validation 2.8 是一种享受。
关于java - Jersey 未验证实体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32619250/