日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

java.lang.IllegalStateException: Context namespace element ‘annotation-config’ and its parser class

發布時間:2025/3/21 41 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java.lang.IllegalStateException: Context namespace element ‘annotation-config’ and its parser class 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

項目中用的是spring低版本(2.5.6),今天用jre 8測試了一下,發現錯誤:
Unexpected exception parsing XML document from class path resource [applicationContext-dao.xml]; nested exception is java.lang.IllegalStateException: Context namespace element ‘annotation-config’ and its parser class [org.springframework.context.annotation.AnnotationConfigBeanDefinitionParser] are only available on JDK 1.5 and higher

看源碼是org.springframework.context.annotation.AnnotationConfigBeanDefinitionParser自動檢測,jdk版本檢測時需要jre1.5以上版本,但是JdkVersion只檢查到了1.7,jre1.8 時不匹配任何jdk,按如下方法處理,可以解決問題。

1、在項目中創建一個package為org.springframework.core
2、在該package下面新建JdkVersion.java,內容如下:
?

package org.springframework.core;public abstract class JdkVersion {public static final int JAVA_13 = 0;public static final int JAVA_14 = 1;public static final int JAVA_15 = 2;public static final int JAVA_16 = 3;public static final int JAVA_17 = 4;//for jre 1.8public static final int JAVA_18 = 5;private static final String javaVersion = System.getProperty("java.version");private static final int majorJavaVersion;public static String getJavaVersion() {return javaVersion;}public static int getMajorJavaVersion() {return majorJavaVersion;}public static boolean isAtLeastJava14() {return true;}public static boolean isAtLeastJava15() {return getMajorJavaVersion() >= 2;}public static boolean isAtLeastJava16() {return getMajorJavaVersion() >= 3;}static {//for jre 1.8if (javaVersion.indexOf("1.8.") != -1) {majorJavaVersion = 5;}else if (javaVersion.indexOf("1.7.") != -1) {majorJavaVersion = 4;} else if (javaVersion.indexOf("1.6.") != -1) {majorJavaVersion = 3;} else if (javaVersion.indexOf("1.5.") != -1) {majorJavaVersion = 2;} else {majorJavaVersion = 1;}} }

我這里只是添加了這個文件,并沒有替換之前的spring.jar下的文件,很神奇竟然也可以了。

因為我做的項目是比較早的,所以直接用的別人的jar包。有些版本不匹配。所以報的錯。我用的JDK的版本是1.8.應該換成1.7就OK了。

這個方式比較直接,比較好。

這些問題都可以百度得到。


3、到項目的WEB-INF/classes 下面找到對應的package中的JdkVersion.class文件
4、將項目中的spring-core-2.5.6.jar拷貝出來打開,然后將JdkVersion.class替換jar包中的該文件。
5、將修改后的spring-core-2.5.6.jar再覆蓋到項目中。

?

?

總結

以上是生活随笔為你收集整理的java.lang.IllegalStateException: Context namespace element ‘annotation-config’ and its parser class的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。