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);
        }
    
    }
  • 相关阅读:
    《.NET内存管理宝典 》(Pro .NET Memory Management) 阅读指南
    《.NET内存管理宝典 》(Pro .NET Memory Management) 阅读指南
    《.NET内存管理宝典 》(Pro .NET Memory Management) 阅读指南
    使用Jasmine和karma对传统js进行单元测试
    《.NET内存管理宝典 》(Pro .NET Memory Management) 阅读指南
    《.NET内存管理宝典 》(Pro .NET Memory Management) 阅读指南
    nginx 基于IP的多虚拟主机配置
    Shiro 框架的MD5加密算法实现原理
    项目实战:Qt+OSG三维点云引擎(支持原点,缩放,单独轴或者组合多轴拽拖旋转,支持导入点云文件)
    实用技巧:阿里云服务器建立公网物联网服务器(解决阿里云服务器端口,公网连接不上的问题)
  • 原文地址:https://www.cnblogs.com/xbq8080/p/8711851.html
Copyright © 2011-2022 走看看