【问题标题】:UnexpectedTypeException: HV000030: No validator could be found for constraint 'javax.validation.constraints.Size' validating type 'java.lang.String'UnexpectedTypeException:HV000030:找不到约束“javax.validation.constraints.Size”验证类型“java.lang.String”的验证器
【发布时间】:2021-11-24 08:20:14
【问题描述】:

在 Quarkus 中为端点运行集成测试时出现此错误。我发出一个 POST 请求,将一个有效对象作为正文传递。方法签名:

 @POST
 public Response myMethodPost(@Valid MyObjData myObjData);

我收到以下错误:

javax.validation.UnexpectedTypeException: HV000030: No validator could be found for constraint 'javax.validation.constraints.Size' validating type 'java.lang.String'. Check configuration for 'myMethodPost.arg0.dataId'

其中dataIdMyObjData 类型String 的属性。 我还包括以下 Maven 依赖项:

        <dependency>
            <groupId>io.quarkus</groupId>
            <artifactId>quarkus-resteasy-jsonb</artifactId>
        </dependency>
        <dependency>
            <groupId>io.quarkus</groupId>
            <artifactId>quarkus-hibernate-validator</artifactId>
        </dependency>
        <dependency>
            <groupId>io.quarkus</groupId>
            <artifactId>quarkus-resteasy</artifactId>
        </dependency>

【问题讨论】:

  • 从您的描述中我看不出任何明显的错误。我们可能需要一个复制器项目。

标签: quarkus hibernate-validator


【解决方案1】:

Quarkus 不会扫描其他模块或 jar 中的类,因此它无法在启动时注册验证器。

我必须将 org.kordamp.gradle.jandex gradle 插件添加到我的子模块中才能让 Quarkus 看到注解。

在这里讨论:https://github.com/quarkusio/quarkus/issues/13233

【讨论】:

    猜你喜欢
    • 2021-02-04
    • 1970-01-01
    • 2018-10-14
    • 2019-03-23
    • 2019-03-07
    • 2023-01-05
    • 1970-01-01
    • 1970-01-01
    • 2012-06-01
    相关资源
    最近更新 更多