[英]java.lang.ClassNotFoundException: javax.validation.ValidatorFactory
[英]Failed to start quarkus: java.lang.ArrayIndexOutOfBoundsException: 1
从QuarkEE工件创建的Quarkus应用程序(0.19.1)无法以以下内容开头:
[io.qua.dev.DevModeMain] Failed to start quarkus: java.lang.ExceptionInInitializerError ..
Caused by: java.lang.ArrayIndexOutOfBoundsException: 1
at io.quarkus.hibernate.validator.runtime.HibernateValidatorRecorder
编辑我为此打开了一张票: https : //github.com/quarkusio/quarkus/issues/3284
根本原因是枚举类的静态工厂方法上的bean验证约束javax.validation.constraints.NotNull
。 简化示例:
public enum Gender {
MALE,
FEMALE;
public static Gender fromCode(@NotNull String code) {
return Gender.valueOf(code);
}
}
并在pom中具有此依赖关系:
<dependency>
<groupId>io.quarkus</groupId>
<artifactId>quarkus-hibernate-validator</artifactId>
</dependency>
令人困惑的是,简单POJO类上的静态工厂方法有效。
注意我知道Bean验证规范不支持静态方法的验证。 这只是对IDE的提示。
Java EE 8验证构造函数和方法: Bean验证约束可以放置在非静态方法和构造函数的参数上以及非静态方法的返回值上。 静态方法和构造函数将不被验证。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.