在 JBOSS 中找不到约束'javax.validation.constraints.NotEmpty'错误的验证器



我有一个SpringBoot版本的'2.3.9.RELEASE'应用程序。

Jboss版本:Jboss-eap-7.1

成功地将应用程序部署到jboss。当我尝试通过我的web应用程序登录时,出现了一个错误。

No validator could be found for constraint 'javax.validation.constraints.NotEmpty' validating type 'java.lang.String'. Check configuration for 'emailAddress'

验证类别如下

@Getter @Setter public class Login  {
@NotEmpty(message = "Please enter email address.", groups = ValidationOrder.Step1.class)
private String emailAddress;

@NotEmpty(message = "Please enter password.", groups = ValidationOrder.Step1.class)
private String password; }

我添加了";jboss部署结构";到"WEB-INF"目录。

<jboss-deployment-structure>
<deployment>
<exclusions>
<module name="javax.validation.api" />
</exclusions>
</deployment>
</jboss-deployment-structure>

pom.xml

<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<exclusions>
<exclusion>
<artifactId>tomcat-embed-websocket</artifactId>
<groupId>org.apache.tomcat.embed</groupId>
</exclusion>
<exclusion>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-validator</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
<scope>compile</scope>
<optional>true</optional>
<exclusions>
<exclusion>
<artifactId>tomcat-embed-websocket</artifactId>
<groupId>org.apache.tomcat.embed</groupId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-validator</artifactId>
<version>7.0.1.Final</version>
<type>jar</type>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.16.16</version>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
<version>3.5</version>
<type>jar</type>
</dependency>
<dependency>
<groupId>javax.validation</groupId>
<artifactId>validation-api</artifactId>
<version>2.0.1.Final</version>
</dependency>

错误仍然存在。一个主意?

它在Netbeans 8.2+Apache Tomcat中运行良好

您应该使用spring-boot-starter验证,而不是添加库。

因此删除:

<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-validator</artifactId>
<version>7.0.1.Final</version>
<type>jar</type>
</dependency>
<dependency>
<groupId>javax.validation</groupId>
<artifactId>validation-api</artifactId>
<version>2.0.1.Final</version>
</dependency>

添加:

<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-validation</artifactId>
</dependency>

同时删除lombok版本。这已经由弹簧引导父定义

最新更新