日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

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

發布時間:2025/3/21 编程问答 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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的全部內容,希望文章能夠幫你解決所遇到的問題。

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