未知的枚举常量:javax.annotation.meta.When.MAYBE || 找不到javax.annotation.Nullable || 找不到javax.annotation.meta

 Warning:java: 未知的枚举常量 javax.annotation.meta.When.MAYBE
  原因: 找不到javax.annotation.meta.When的类文件

编译项目时报错,找不到类,我自己去jar包里找也找不到。

如下图,找到swagger依赖的com.google.guava包;

这个包用的javax.annotation包不是下图中jdk里面的包;

而是用的如下图中的包,红圈就是编译时报错的地方。

在maven中加入以下依赖:

<dependency>
    <groupId>com.google.code.findbugs</groupId>
    <artifactId>annotations</artifactId>
    <version>{annotations.version}</version>
</dependency>


DONE!

不过还有一点比较奇怪,我发现项目里(包括引用资源)并没有找到引用

javax.annotation.meta.When

它的代码。。。。。。。。。

  • 11
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
### 回答1: 这个错误消息说明你的程序不到javax.servlet.annotation这个包。这个包是Java Servlet API的一部分,是用于开发Java Web应用程序的标准接口。如果你的程序需要使用这个包,你需要在你的项目中导入它。 通常情况下,你可以通过下载并安装Java Servlet API的实现来解决这个问题。你可以在Apache Tomcat或Jetty等Web服务器上到这个实现。 如果你使用的是Eclipse或IntelliJ IDEA等开发工具,你可以通过在项目的配置中添加这个包的依赖来解决这个问题。 总的来说,如果你遇到了这个错误,你需要确保你的程序有访问javax.servlet.annotation这个包的权限。 ### 回答2: 当出现"程序包javax.servlet.annotation不存在"的错误时,通常是由于以下几种原因造成的: 一、 缺少相关的jar包 javax.servlet.annotationjavax.servlet-api包中的一个子包,因此在使用javax.servlet.annotation相关的功能时,需要先导入javax.servlet-api包。如果缺少了这个包,就会出现该错误。 解决方法:在项目的依赖中增加javax.servlet-api包。 二、 项目的Web容器版本不兼容 某些Web容器不支持javax.servlet.annotation包中的所有功能或版本不一致,就会出现该错误。 解决方法:尝试使用与Web容器兼容的javax.servlet.annotation的版本,或者更新Web容器版本以支持使用该功能。 三、项目缺少web.xml配置文件 在某些情况下,项目缺少web.xml配置文件可能会引起该错误。web.xml配置文件是Java Web应用程序中的配置文件,它包含了Web应用程序的配置信息。 解决方法:在项目的WEB-INF目录下添加web.xml文件。 总结:出现"程序包javax.servlet.annotation不存在"的错误通常是由缺少相关的jar包、项目的Web容器版本不兼容或项目缺少web.xml配置文件等原因造成的。因此在解决该问题时,需要根据具体情况采取相应的解决方法。 ### 回答3: Javajavax.servlet.annotation程序包是Java Servlet API的一部分,其中包含用于编写Web应用程序的注解。常见的映射注解包括@WebServlet、@WebFilter、@WebListener和@MultipartConfig。这些注解使开发人员能够轻松地映射Servlet、过滤器、监听器和处理文件上传的servlet容器配置。如果在Java项目中使用了这些注解并且没有手动导入javax.servlet.annotation包,那么就会出现错误“程序包javax.servlet.annotation不存在”。 解决方法: 1. 检查项目的依赖项:在项目中使用javax.servlet.annotation程序包之前,确保在项目中添加了Java Servlet API依赖项。可以在Maven或Gradle中添加以下依赖项: Maven: ``` <dependency> <groupId>javax.servlet</groupId> <artifactId>javax.servlet-api</artifactId> <version>4.0.0</version> </dependency> ``` Gradle: ``` compile 'javax.servlet:javax.servlet-api:4.0.0' ``` 2. 导入javax.servlet.annotation包:如果Java Servlet API依赖项已经添加到项目中,但仍然遇到错误“程序包javax.servlet.annotation不存在”,则需要手动导入javax.servlet.annotation包。可以通过在代码中添加以下导入语句来实现: ``` import javax.servlet.annotation.WebServlet; import javax.servlet.annotation.WebFilter; import javax.servlet.annotation.WebListener; import javax.servlet.annotation.MultipartConfig; ``` 3. 检查Servlet API版本:如果以上两种方法都没有解决问题,则可能是由于使用的Java Servlet API版本过低而导致的。请升级到最新版本的Java Servlet API,并再次尝试导入javax.servlet.annotation包。 总之,如果发现项目中出现“程序包javax.servlet.annotation不存在”的错误,首先应该检查Java Servlet API依赖项是否已经添加,并手动导入javax.servlet.annotation包。如果仍有问题,则可能需要升级Java Servlet API版本。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值