[英]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.