org.springframework.core.convert.TypeDescriptor找不到类?

问题描述

我试图进行有关Spring IOC的实验,我编写了ServiceBean以及bean.xml文件。我尝试在我的应用程序中实例化这样的服务bean:

public class SpringTrialApplication {
    public static void main(String[] args) throws IOException {
        SpringTrialApplication main = new SpringTrialApplication();

        Xmlbeanfactory factory = new Xmlbeanfactory(new ClassPathResource("beans.xml",main.getClass().getClassLoader() ));
        // use service bean:
        ServiceBean service = (ServiceBean)factory.getBean("service");
        // com.ServiceBean service = new com.MyServiceBean();
        service.addUser("bill","hello");
        service.addUser("tom","goodbye");
        service.addUser("tracy","morning");
        System.out.println("tom's password is: " + service.getpassword("tom"));
        if(service.findUser("tom")) {
            service.deleteUser("tom");
        }
    }
}

我可以成功读取bean.xml,但是由于找不到类org.springframework.core.convert.TypeDescriptor而无法创建bean。以下是我的日志:

Exception in thread "main" org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'service' defined in class path resource [beans.xml]: Instantiation of bean Failed; nested exception is java.lang.NoClassDefFoundError: org/springframework/core/convert/TypeDescriptor
    at org.springframework.beans.factory.support.AbstractAutowireCapablebeanfactory.instantiateBean(AbstractAutowireCapablebeanfactory.java:955)
    at org.springframework.beans.factory.support.AbstractAutowireCapablebeanfactory.createBeanInstance(AbstractAutowireCapablebeanfactory.java:901)
    at org.springframework.beans.factory.support.AbstractAutowireCapablebeanfactory.doCreateBean(AbstractAutowireCapablebeanfactory.java:485)
    at org.springframework.beans.factory.support.AbstractAutowireCapablebeanfactory.createBean(AbstractAutowireCapablebeanfactory.java:456)
    at org.springframework.beans.factory.support.Abstractbeanfactory$1.getobject(Abstractbeanfactory.java:291)
    at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222)
    at org.springframework.beans.factory.support.Abstractbeanfactory.doGetBean(Abstractbeanfactory.java:288)
    at org.springframework.beans.factory.support.Abstractbeanfactory.getBean(Abstractbeanfactory.java:190)
    at com.SpringTrialApplication.main(SpringTrialApplication.java:27)
Caused by: java.lang.NoClassDefFoundError: org/springframework/core/convert/TypeDescriptor
    at org.springframework.beans.factory.support.AbstractAutowireCapablebeanfactory.instantiateBean(AbstractAutowireCapablebeanfactory.java:950)
    ... 8 more
Caused by: java.lang.classNotFoundException: org.springframework.core.convert.TypeDescriptor
    at java.net.urlclassloader.findClass(urlclassloader.java:381)
    at java.lang.classLoader.loadClass(ClassLoader.java:424)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:338)
    at java.lang.classLoader.loadClass(ClassLoader.java:357)
    ... 9 more

Process finished with exit code 1

和我的beans.xml一样:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN"
        "http://www.springframework.org/dtd/spring-beans.dtd">
<beans>
    <bean id="service" class="com.MyServiceBean" />
</beans>

我的工作空间是这样的: directory 我的项目中使用了以下依赖项:

<dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-beans</artifactId>
            <version>3.0.2.RELEASE</version>
        </dependency>
        <!-- https://mvnrepository.com/artifact/org.springframework/spring-core -->
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-core</artifactId>
            <version>2.5.6</version>
        </dependency>

是不是因为Spring框架更改了3.x中的内部结构?我该如何解决这个问题?

解决方法

Question is old,but it's never too late to answer $(document).ready(function() { //prevent paste var usern_paste = document.getElementById('yourid'); usern_paste.onpaste = e => e.preventDefault(); //prevent copy var usern_drop = document.getElementById('yourid'); usern_drop.ondrop = e => e.preventDefault(); $('#yourid').keypress(function (e) { var regex = new RegExp("^[a-zA-Z0-9\s]"); var str = String.fromCharCode(!e.charCode ? e.which : e.charCode); if (regex.test(str)) { return true; } e.preventDefault(); return false; }); }); spring-beans中使用相同的版本可以解决问题。