【问题标题】:How to use Bean Validation in a Helidon App?如何在 Helidon 应用程序中使用 Bean 验证?
【发布时间】:2020-09-11 08:38:45
【问题描述】:

我正在尝试使用 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>

【问题讨论】:

    标签: helidon


    【解决方案1】:

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

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

    【讨论】:

    • 感谢@LairdNelson,我最终完全按照您在此答案中所说的进行了操作。我只是想知道是否有一些 helidon 依赖项为我添加了这个。
    • 否;除了 bean 验证实现之外,这里实际上并没有添加任何功能——CDI 为您完成了艰苦的集成工作。
    猜你喜欢
    • 2020-09-25
    • 2012-06-17
    • 1970-01-01
    • 2021-03-14
    • 2014-09-21
    • 2012-05-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多