泽西岛没有验证实体

时间:2015-09-16 21:42:27

标签: java jersey

我有一个用@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");
    }

我依赖于泽西豆验证:

    <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"
}

1 个答案:

答案 0 :(得分:1)

发现问题。我在泽西岛2.8(让杰克逊生活更轻松)但我依赖于泽西豆验证2.21。下降到泽西豆验证2.8是一种享受。

相关问题