1

我正在尝试使用 Helidon-MP 创建一个简单的 Rest 资源,但由于某种原因,当我在我的方法上添加 bean 验证注释时它不起作用。

@POST
public Response generatePlan(@Valid @ValidPlan JsonObject payload) {
   // some logic here
}

这是预期的行为吗?或者我应该添加一些依赖项或配置吗?

我试图在文档上找到一些东西,但我找不到。

谢谢


我最终按照@LairdNelson 的回答做了,并在我的添加了以下依赖项pom.xml

<dependency>
     <groupId>org.hibernate.validator</groupId>
     <artifactId>hibernate-validator</artifactId>
     <version>6.1.5.Final</version>
</dependency>
<dependency>
     <groupId>org.hibernate.validator</groupId>
     <artifactId>hibernate-validator-cdi</artifactId>
     <version>6.1.5.Final</version>
</dependency>
<dependency>
     <groupId>jakarta.el</groupId>
     <artifactId>jakarta.el-api</artifactId>
</dependency>
<dependency>
     <groupId>org.glassfish</groupId>
     <artifactId>jakarta.el</artifactId>
</dependency>
4

1 回答 1

2

Bean 验证不是 MicroProfile 规范集的一部分,因此默认情况下它不是 Helidon MP 的一部分,Helidon MP 是 MicroProfile 实现。

您当然可以在编译或运行时类路径上添加 Bean Validation 的实现,只要它是 CDI 可移植扩展(这是您向任何符合 MicroProfile 的实现添加任意功能的方式)。一种这样的可移植扩展是由Hibernate Validator 支持的扩展。当然可能还有其他人。

于 2020-05-25T04:11:50.993 回答