本文介紹了Javax.Annotation類和Java 11 JDK的處理方法,對(duì)大家解決問題具有一定的參考價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)吧!
問題描述
我正在從Java 8遷移到Java 11,遇到了這個(gè)問題。
我應(yīng)該使用:
帶有目標(biāo)1.8的maven-編譯器-plugin 2.5.1(在java8中編譯WAR)
Tomcat9
打開JDK 11
但在啟動(dòng)時(shí)獲取持續(xù)錯(cuò)誤:
合并Bean定義的后處理失敗;嵌套異常為
Java.lang.NoSuchMethodError:
Javax.annotation.Resource.lookup()Ljava/lang/String;
我找到了多種修復(fù)方法。已嘗試添加依賴項(xiàng):
<dependency>
<groupId>javax.annotation</groupId>
<artifactId>javax.annotation-api</artifactId>
<version>1.3.2</version>
</dependency>
嘗試添加擴(kuò)展名:
<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>
請(qǐng)幫助尋找解決方案!!
推薦答案
對(duì)我來說,問題在于libs:javax.Annotation-api^1.3.2和jsr250-api:1.0之間的沖突。在沒有l(wèi)ookup()方法的jsr250-api中有一個(gè)javax.注解.@Resource注解!在一些運(yùn)行環(huán)境中,jsr250的@Resorse首先被加載,而在另一些運(yùn)行環(huán)境中
合并Bean定義的后處理失敗;嵌套異常為
Java.lang.NoSuchMethodError:
Javax.annotation.Resource.lookup()Ljava/lang/String;
解決方案:使用maven exclusion刪除其中一個(gè)庫。
這篇關(guān)于Javax.Annotation類和Java 11 JDK的文章就介紹到這了,希望我們推薦的答案對(duì)大家有所幫助,