gpt4 book ai didi

java - Jersey 未验证实体

转载 作者:行者123 更新时间:2023-12-01 11:08:43 25 4
gpt4 key购买 nike

我有一个用 @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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com