java.lang.ClassNotFoundException: org.springframework.core.convert.support.PropertyTypeDescriptor

声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow 原文地址: http://stackoverflow.com/questions/20077584/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me): StackOverFlow

提示:将鼠标放在中文语句上可以显示对应的英文。显示中英文
时间:2020-08-12 22:55:28  来源:igfitidea点击:

java.lang.ClassNotFoundException: org.springframework.core.convert.support.PropertyTypeDescriptor

javaspringspring-mvcspring-security

提问by Spark-Beginner

When I am trying to start the application it throws an exception shown in stack trace. I'm using:

当我尝试启动应用程序时,它会引发堆栈跟踪中显示的异常。我正在使用:

  • spring version 3.2.4.RELEASE
  • spring Transaction version 3.2.4.RELEASE
  • spring.security.version 3.0.5.RELEASE
  • hibernate.version 4.2.1.Final
  • JPA 1.0
  • 弹簧版本 3.2.4.RELEASE
  • spring 事务版本 3.2.4.RELEASE
  • spring.security.version 3.0.5.RELEASE
  • hibernate.version 4.2.1.Final
  • JPA 1.0

I knew that PropertyTypeDescriptoris removed from spring. But I dont know how to handle this I'm stuck in this from last 2 days. Please suggest.

我知道那PropertyTypeDescriptor是从 spring 中删除的。但我不知道如何处理这个问题,我从过去 2 天就陷入了困境。请建议。

Stacktrace:

堆栈跟踪:

 2013-11-19 22:25:17 ERROR TestContextManager:324 - Caught exception
 while allowing TestExecutionListener
 [org.springframework.test.context.support.DependencyInjectionTestExecutionListener@109cdd5]
 to prepare test instance
 [test.clickbuff.controller.TestUserController@893f08]
 java.lang.IllegalStateException: Failed to load ApplicationContext     at
 org.springframework.test.context.TestContext.getApplicationContext(TestContext.java:308)
    at
 org.springframework.test.context.support.DependencyInjectionTestExecutionListener.injectDependencies(DependencyInjectionTestExecutionListener.java:109)
    at
 org.springframework.test.context.support.DependencyInjectionTestExecutionListener.prepareTestInstance(DependencyInjectionTestExecutionListener.java:75)
    at
 org.springframework.test.context.TestContextManager.prepareTestInstance(TestContextManager.java:321)
    at
 org.springframework.test.context.junit4.SpringJUnit4ClassRunner.createTest(SpringJUnit4ClassRunner.java:220)   at
 org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runReflectiveCall(SpringJUnit4ClassRunner.java:301)
    at
 org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
    at
 org.springframework.test.context.junit4.SpringJUnit4ClassRunner.methodBlock(SpringJUnit4ClassRunner.java:303)
    at
 org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:240)
    at
 org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:50)
    at org.junit.runners.ParentRunner.run(ParentRunner.java:238)  at
 org.junit.runners.ParentRunner.schedule(ParentRunner.java:63)    at
 org.junit.runners.ParentRunner.runChildren(ParentRunner.java:236)  at
 org.junit.runners.ParentRunner.access
<?xml version="1.0" encoding="UTF-8"?>

<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:task="http://www.springframework.org/schema/task" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:mvc="http://www.springframework.org/schema/mvc" xmlns:context="http://www.springframework.org/schema/context"
    xmlns:tx="http://www.springframework.org/schema/tx"
    xsi:schemaLocation="http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc.xsd
        http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
        http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd  http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx.xsd
        http://www.springframework.org/schema/task http://www.springframework.org/schema/task/spring-task-3.0.xsd">

    <import resource="application-config.xml" />
    <import resource="spring-database.xml" />
    <import resource="Spring-Mail.xml" />
    <import resource="spring-security.xml" />


    <!--Setting Context Annotation Driven -->
    <context:annotation-config />


    <!-- Controller's Base package -->
    <context:component-scan base-package="training.impetus.tp" />


    <!-- Scheduler Annotation Driven -->
    <task:annotation-driven />


    <!-- Spring MVC Annotation Driven -->
    <mvc:annotation-driven />


    <!-- Transaction Annotation Driven -->
    <tx:annotation-driven transaction-manager="transactionManager" />


    <!-- Resource mapping for static resources -->
    <mvc:resources mapping="/resources/**" location="/static/" />


    <!-- File upload Bean -->
    <bean id="multipartResolver"
        class="org.springframework.web.multipart.commons.CommonsMultipartResolver" />


    <!-- Transaction Manager -->
    <bean id="transactionManager" class="org.springframework.orm.jpa.JpaTransactionManager">
        <property name="dataSource" ref="dataSource" />
        <property name="entityManagerFactory" ref="entityManagerFactory" />
    </bean>


    <!-- Assigning jobs to scheduler -->
    <bean id="schedulerJob" class="training.impetus.tp.scheduler.MailServiceJob"></bean>


    <!-- processes PersistenceUnit and PersistenceContext annotations -->
    <bean
        class="org.springframework.orm.jpa.support.PersistenceAnnotationBeanPostProcessor" />


    <!-- View Mapping to MVC -->
    <bean
        class="org.springframework.web.servlet.view.InternalResourceViewResolver">
        <property name="prefix" value="/WEB-INF/view/" />
        <property name="suffix" value=".jsp" />
    </bean>


    <!-- Exceptions Mapping to MVC -->
    <bean
        class="org.springframework.web.servlet.handler.SimpleMappingExceptionResolver">
        <property name="exceptionMappings">
            <props>
                <prop key="com.javabeat.ExampleException">
                    ExceptionPage
                </prop>
            </props>
        </property>
        <property name="defaultErrorView" value="error" />
    </bean>


    <!-- Message Resources -->
    <bean id="messageSource"
        class="org.springframework.context.support.ResourceBundleMessageSource">
        <property name="basenames">
            <list>
                <value>mymessages</value>
            </list>
        </property>
    </bean>

    <bean id="payCheckThread" class="training.impetus.tp.scheduler.PayCheckThread" scope="prototype"></bean>

</beans>
0(ParentRunner.java:53) at org.junit.runners.ParentRunner.evaluate(ParentRunner.java:229) at org.springframework.test.context.junit4.statements.RunBeforeTestClassCallbacks.evaluate(RunBeforeTestClassCallbacks.java:61) at org.springframework.test.context.junit4.statements.RunAfterTestClassCallbacks.evaluate(RunAfterTestClassCallbacks.java:70) at org.junit.runners.ParentRunner.run(ParentRunner.java:309) at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.run(SpringJUnit4ClassRunner.java:180) at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:50) at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:467) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:683) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:390) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:197) Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'org.springframework.context.annotation.internalConfigurationAnnotationProcessor': Instantiation of bean failed; nested exception is java.lang.NoClassDefFoundError: org/springframework/core/convert/support/PropertyTypeDescriptor at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateBean(AbstractAutowireCapableBeanFactory.java:965) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:911) 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.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:194) at org.springframework.beans.factory.support.DefaultListableBeanFactory.getBeansOfType(DefaultListableBeanFactory.java:398) at org.springframework.context.support.AbstractApplicationContext.invokeBeanFactoryPostProcessors(AbstractApplicationContext.java:594) at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:407) at org.springframework.test.context.support.AbstractGenericContextLoader.loadContext(AbstractGenericContextLoader.java:84) at org.springframework.test.context.support.AbstractGenericContextLoader.loadContext(AbstractGenericContextLoader.java:1) at org.springframework.test.context.TestContext.loadApplicationContext(TestContext.java:280) at org.springframework.test.context.TestContext.getApplicationContext(TestContext.java:304) ... 24 more Caused by: java.lang.NoClassDefFoundError: org/springframework/core/convert/support/PropertyTypeDescriptor at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateBean(AbstractAutowireCapableBeanFactory.java:960) ... 38 more Caused by: java.lang.ClassNotFoundException: org.springframework.core.convert.support.PropertyTypeDescriptor at java.net.URLClassLoader.run(URLClassLoader.java:366) at java.net.URLClassLoader.run(URLClassLoader.java:355) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(URLClassLoader.java:354) at java.lang.ClassLoader.loadClass(ClassLoader.java:423) at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308) at java.lang. ClassLoader.loadClass(ClassLoader.java:356) ... 39 more

Application context:

应用上下文:

<?xml version="1.0" encoding="UTF-8"?>

<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:tx="http://www.springframework.org/schema/tx"  xmlns:context="http://www.springframework.org/schema/context"
    xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
        http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd  http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx.xsd">

    <context:annotation-config />

    <context:component-scan base-package="training.impetus.tp" />

    <context:component-scan base-package="training.impetus.tp.controller" />

    <bean id="HymansonMessageConverter" class="org.springframework.http.converter.json.MappingHymansonHttpMessageConverter"></bean>

    <bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter">
        <property name="messageConverters">
            <list>
                <ref bean="HymansonMessageConverter" />
            </list>
        </property>
    </bean>

</beans>

apploicationContext.xml

应用上下文.xml

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:tx="http://www.springframework.org/schema/tx"
    xmlns:context="http://www.springframework.org/schema/context"
    xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd         
                        http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx.xsd
                        http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd">

    <context:annotation-config />

    <context:component-scan base-package="training.impetus.tp" />






    <context:property-placeholder location="classpath:datasource.properties" />

    <context:component-scan base-package="training.impetus.tp" />

    <bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
        <property name="driverClassName" value="${driver}" />
        <property name="url" value="${url}" />
        <property name="username" value="${user}" />
        <property name="password" value="${password}" />
    </bean>

    <bean id="entityManagerFactory" class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean">
        <property name="jpaVendorAdapter">
            <bean class="org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter">
                <property name="showSql" value="true" />
                <property name="generateDdl" value="true" />
                <property name="databasePlatform" value="org.hibernate.dialect.MySQLDialect" />
            </bean>
        </property>
        <property name="persistenceUnitName" value="default"></property>
        <property name="dataSource" ref="dataSource" />
    </bean>

</beans>


        <context:component-scan base-package="training.impetus.tp.controller" />

        <bean id="HymansonMessageConverter" class="org.springframework.http.converter.json.MappingHymansonHttpMessageConverter"></bean>

    <bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter">
        <property name="messageConverters">
            <list>
                <ref bean="HymansonMessageConverter" />
            </list>
        </property>
    </bean>

</beans>

Sprung database.xml

弹性数据库.xml

@ContextConfiguration(locations = {"classpath:mvc-config.xml"})
@TransactionConfiguration(defaultRollback = true)
@RunWith(SpringJUnit4ClassRunner.class)
@Transactional
public class TestUserController {

    @Before
    public void setUp() throws Exception {
    }

    @Test
    public void testGetAllUsers() {
        fail("Not yet implemented");
    }

test case:

测试用例:

##代码##

回答by user3009847

If you really need to use that class.

如果你真的需要使用那个类。

Try put that class in another jar so you can include in your classpath. Like is done with the RmiInvocationWrapper_Stub when you migrate from version 2.5.6 to 3.x.

尝试将该类放在另一个 jar 中,以便您可以包含在类路径中。当您从版本 2.5.6 迁移到 3.x 时,就像使用 RmiInvocationWrapper_Stub 完成的一样。

You can find information in this docs of spring link

您可以在 spring链接的此文档中找到信息

回答by Shankar P S

The spring.security.version 3.0.5.RELEASE depends on Spring core 3.0.3 release. This is why application context cannot load. Upgrade this to a later version.

spring.security.version 3.0.5.RELEASE 依赖于 Spring 核心 3.0.3 版本。这就是应用程序上下文无法加载的原因。将此升级到更高版本。

You can verify this at https://mvnrepository.com/artifact/org.springframework.security/spring-security-core/3.0.5.RELEASE(Look for Compiler dependencies)

您可以在https://mvnrepository.com/artifact/org.springframework.security/spring-security-core/3.0.5.RELEASE验证这一点 (查找编译器依赖项)