• Context namespace element 'component-scan' and its parser class [org.springframework.context.annotation.ComponentScanBeanDefinitionParser] are only available on JDK 1.5 and higher


    异常信息如下:

    错误: Unexpected exception parsing XML document from class path resource [spring/applicationContext-db.xml]; nested exception is java.lang.IllegalStateException: Context namespace element 'component-scan' and its parser class [org.springframework.context.annotation.ComponentScanBeanDefinitionParser] are only available on JDK 1.5 and higher 

    原因:

      当前jdk版本的spring不支持注解,有两种方式解决这个问题。一是 换jdk,二是  加一个配置文件。

      这里使用的是加一个配置文件:在src文件夹加org.springframework.core包,并添加一个JdkVersion.java文件,使注解能够识别jdk8。 

    JdkVersion.java文件内容如下:

    package org.springframework.core;
    
    /**
     * Internal helper class used to find the Java/JVM version
     * that Spring is operating on, to allow for automatically
     * adapting to the present platform's capabilities.
     *
     * <p>Note that Spring requires JVM 1.5 or higher, as of Spring 3.0.
     *
     * @author Rod Johnson
     * @author Juergen Hoeller
     * @author Rick Evans
     */
    public abstract class JdkVersion {
    
        /**
         * Constant identifying the 1.3.x JVM (JDK 1.3).
         */
        public static final int JAVA_13 = 0;
    
        /**
         * Constant identifying the 1.4.x JVM (J2SE 1.4).
         */
        public static final int JAVA_14 = 1;
    
        /**
         * Constant identifying the 1.5 JVM (Java 5).
         */
        public static final int JAVA_15 = 2;
    
        /**
         * Constant identifying the 1.6 JVM (Java 6).
         */
        public static final int JAVA_16 = 3;
    
        /**
         * Constant identifying the 1.7 JVM (Java 7).
         */
        public static final int JAVA_17 = 4;
        
        /**
         * Constant identifying the 1.8 JVM (Java 8).
         */
        public static final int JAVA_18 = 5;
        
        
    
    
        private static final String javaVersion;
    
        private static final int majorJavaVersion;
    
        static {
            javaVersion = System.getProperty("java.version");
            // version String should look like "1.4.2_10"
            if (javaVersion.contains("1.8.")) {
                majorJavaVersion = JAVA_18;
            }else if (javaVersion.contains("1.7.")) {
                majorJavaVersion = JAVA_17;
            }
            else if (javaVersion.contains("1.6.")) {
                majorJavaVersion = JAVA_16;
            }
            else {
                // else leave 1.5 as default (it's either 1.5 or unknown)
                majorJavaVersion = JAVA_15;
            }
        }
    
    
        /**
         * Return the full Java version string, as returned by
         * <code>System.getProperty("java.version")</code>.
         * @return the full Java version string
         * @see System#getProperty(String)
         */
        public static String getJavaVersion() {
            return javaVersion;
        }
    
        /**
         * Get the major version code. This means we can do things like
         * <code>if (getMajorJavaVersion() < JAVA_14)</code>.
         * @return a code comparable to the JAVA_XX codes in this class
         * @see #JAVA_13
         * @see #JAVA_14
         * @see #JAVA_15
         * @see #JAVA_16
         * @see #JAVA_17
         */
        public static int getMajorJavaVersion() {
            return majorJavaVersion;
        }
    
    
        /**
         * Convenience method to determine if the current JVM is at least Java 1.4.
         * @return <code>true</code> if the current JVM is at least Java 1.4
         * @deprecated as of Spring 3.0 which requires Java 1.5+
         * @see #getMajorJavaVersion()
         * @see #JAVA_14
         * @see #JAVA_15
         * @see #JAVA_16
         * @see #JAVA_17
         */
        @Deprecated
        public static boolean isAtLeastJava14() {
            return true;
        }
    
        /**
         * Convenience method to determine if the current JVM is at least
         * Java 1.5 (Java 5).
         * @return <code>true</code> if the current JVM is at least Java 1.5
         * @deprecated as of Spring 3.0 which requires Java 1.5+
         * @see #getMajorJavaVersion()
         * @see #JAVA_15
         * @see #JAVA_16
         * @see #JAVA_17
         */
        @Deprecated
        public static boolean isAtLeastJava15() {
            return true;
        }
    
        /**
         * Convenience method to determine if the current JVM is at least
         * Java 1.6 (Java 6).
         * @return <code>true</code> if the current JVM is at least Java 1.6
         * @deprecated as of Spring 3.0, in favor of reflective checks for
         * the specific Java 1.6 classes of interest
         * @see #getMajorJavaVersion()
         * @see #JAVA_16
         * @see #JAVA_17
         */
        @Deprecated
        public static boolean isAtLeastJava16() {
            return (majorJavaVersion >= JAVA_16);
        }
    
    }
  • 相关阅读:
    WebService安全机制的思考与实践
    Typora
    谷歌隐藏功能开启
    在Idea中jdk11和jdk8环境变量的切换
    win10安装两个不同版本的mysql(mysql5.7和mysql8.0.19)
    Guava中这些Map的骚操作,让我的代码量减少了50%
    MySQL TransactionMySQL锁升级引发的死锁问题
    mac 在 home 目录下创建文件夹
    忍者系统
    DNS服务简介和配置详解
  • 原文地址:https://www.cnblogs.com/xbq8080/p/8711851.html
Copyright © 2020-2023  润新知