javax.annotation classes and Java 11 JDK(Javax.Annotation类和Java 11 JDK)
本文介绍了Javax.Annotation类和Java 11 JDK的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我正在从Java 8迁移到Java 11,遇到了这个问题。 我应该使用:
- 带有目标1.8的maven-编译器-plugin 2.5.1(在java8中编译WAR)
- Tomcat9
- 打开JDK 11
但在启动时获取持续错误:
合并Bean定义的后处理失败;嵌套异常为 Java.lang.NoSuchMethodError: Javax.annotation.Resource.lookup()Ljava/lang/String;
我找到了多种修复方法。已尝试添加依赖项:
<dependency>
<groupId>javax.annotation</groupId>
<artifactId>javax.annotation-api</artifactId>
<version>1.3.2</version>
</dependency>
尝试添加扩展名:
<extensions>
<extension>
<groupId>javax.annotation</groupId>
<artifactId>javax.annotation-api</artifactId>
<version>1.3.2</version>
</extension>
</extensions>
这些都没有帮助。
这是maven-编译器-plugin配置:
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<version>2.5.1</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
<encoding>UTF-8</encoding>
</configuration>
</plugin>
请帮助寻找解决方案!!
推荐答案
对我来说,问题在于libs:javax.Annotation-api^1.3.2和jsr250-api:1.0之间的冲突。在没有lookup()方法的jsr250-api中有一个javax.注解.@Resource注解!在一些运行环境中,jsr250的@Resorse首先被加载,而在另一些运行环境中
合并Bean定义的后处理失败;嵌套异常为 Java.lang.NoSuchMethodError: Javax.annotation.Resource.lookup()Ljava/lang/String;
解决方案:使用maven exclusion删除其中一个库。
这篇关于Javax.Annotation类和Java 11 JDK的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
沃梦达教程
本文标题为:Javax.Annotation类和Java 11 JDK
猜你喜欢
- Safepoint+stats 日志,输出 JDK12 中没有 vmop 操作 2022-01-01
- Jersey REST 客户端:发布多部分数据 2022-01-01
- Java包名称中单词分隔符的约定是什么? 2022-01-01
- 如何使用WebFilter实现授权头检查 2022-01-01
- C++ 和 Java 进程之间的共享内存 2022-01-01
- 将log4j 1.2配置转换为log4j 2配置 2022-01-01
- Eclipse 插件更新错误日志在哪里? 2022-01-01
- 从 finally 块返回时 Java 的奇怪行为 2022-01-01
- Spring Boot连接到使用仲裁器运行的MongoDB副本集 2022-01-01
- value & 是什么意思?0xff 在 Java 中做什么? 2022-01-01