Java Import 语句中的错误“无法解析导入 javax.validation.constraints.NotNull”

问题描述 投票:0回答:15

开发Spring roo项目后,我在课堂上发现以下错误:

The import javax.validation.constraints.NotNull cannot be resolved

NotNull cannot be resolved to a type

我正在使用

STS 3.1.0.RELEASE

如何纠正这个问题?

java spring spring-mvc spring-roo
15个回答
115
投票

我也有同样的问题。我发现最新版本的 Spring Boot 需要单独的依赖项来进行验证。我尝试在 pom.xml 文件中添加以下依赖项,它起作用了。

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

38
投票

包含此类的 jar 必须添加到项目的构建路径中:http://mvnrepository.com/artifact/javax.validation/validation-api/1.0.0.GA


22
投票

对于 JDK-9,旧版本的“javax.validation”不支持。所以我们应该添加最新版本。

我们将通过以下方式了解任何 jar 的最新版本

C:\Users\username\.m2\repository\javax\validation\validation-api

上面的文件夹应该包含所有版本的jar,然后您可以通过以下方式将最新版本作为依赖项添加到pom.xml文件中

就我而言,“2.0.0.final”是最新版本。

<dependency>
    <groupId>javax.validation</groupId>
    <artifactId>validation-api</artifactId>
    <version>2.0.0.Final</version>
</dependency>

16
投票

从 Spring boot 2.3 版本开始,您必须在 pom.xml 中添加此依赖项

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

网络启动器不再包含验证,因此您必须手动添加


9
投票

如果您正在使用 SpringBoot 并且要迁移到 Spring Boot 3,则需要将 javax.validation 的所有引用替换为 jakarta.validation。

查看 Spring Boot 的发行说明:

https://github.com/spring-projects/spring-boot/wiki/Spring-Boot-3.0-Release-Notes


8
投票

我使用 JDK JAVA 8,但仍然遇到类似的问题。只需在我的 pom.xml 中添加以下示例,错误就消失了

<dependency>
    <groupId>javax.validation</groupId>
    <artifactId>validation-api</artifactId>
    <version>2.0.1.Final</version>
</dependency>

以下文章帮助我找到了解决方案: “https://www.baeldung.com/javax-validation


1
投票

除了复制和粘贴.jar en

<root-project>/lib
之外,您还必须将它们添加到项目结构>库>类

GL

休眠验证器


1
投票

之前,Gradle 默认包含此依赖项。我不知道会发生什么。您必须手动添加此依赖项:实现 'jakarta.validation:jakarta.validation-api:2.0.2'


1
投票

您可能想使用 Jakarta 验证而不是 javax。因为后者已经被认为是遗产。 Spring Boot 3 默认包含 Jakarta lib。


1
投票

我正在处理同样的问题。

这里你需要像这样导入 - 导入 jakarta.validation.constraints.NotNull;

而不是- 导入 javax.validation.constraints.NotNull

并在 pom.xml 文件中添加以下依赖项。

<dependency>
        <groupId>org.hibernate.validator</groupId>
        <artifactId>hibernate-validator</artifactId>
        <version>8.0.0.Final</version>
</dependency>

0
投票

我有同样的错误,我只是从下载了 API :https://mvnrepository.com/artifact/javax.validation/validation-api/1.0.0.GA :https://mvnrepository.com/artifact/javax.validation/com.springsource.javax.validation/1.0.0.GA

它开始工作了 -)))))))


0
投票

Intellij解决方案: 粘贴下面的代码后,您需要(完全)关闭intellij,然后再次打开。

粘贴以下内容:


    <dependency>
         <groupId>javax.validation</groupId>
         <artifactId>validation-api</artifactId>
         <version>1.0.0.GA</version>
    </dependency>


0
投票
<dependency>
    <groupId>javax.validation</groupId>
    <artifactId>validation-api</artifactId>
    <version>1.0.0.GA</version>
</dependency>

<dependency>
    <groupId>jakarta.validation</groupId>
    <artifactId>jakarta.validation-api</artifactId>
    <version>2.0.2</version>
</dependency>

还有以下版本。


0
投票

如果您使用 gradle,请在“build.gradle”文件中的“依赖项”中添加以下内容

implementation 'org.springframework.boot:spring-boot-starter-validation'

testImplementation 'org.springframework.boot:spring-boot-starter-test'

0
投票

我遇到了类似的问题,我添加了以下依赖项org.springframework.boot:spring-boot-starter-validation但仍然有相同的错误。然后发现由于从javax迁移到jakarta而发生了变化 您需要更改您的进口

javax.validation.constraints.NotNull;

导入 jakarta.validation.constraints.NotNull;

© www.soinside.com 2019 - 2024. All rights reserved.