zoukankan      html  css  js  c++  java
  • 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);
        }
    
    }
  • 相关阅读:
    hdu 6010 Daylight Saving Time
    hdu 5999 The Third Cup is Free
    2011 USP Try-outs F. Auction of Services
    1449 砝码称重
    hdu 6205 card card card
    hdu 6201 transaction transaction transaction
    Codeforces 828D
    Codeforces Round #434 D
    zoj
    Codeforces Round #434 C
  • 原文地址:https://www.cnblogs.com/xbq8080/p/8711851.html
Copyright © 2011-2022 走看看