0

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

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

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$1.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$3.run(ParentRunner.java:238)  at
 org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:63)    at
 org.junit.runners.ParentRunner.runChildren(ParentRunner.java:236)  at
 org.junit.runners.ParentRunner.access$000(ParentRunner.java:53)    at
 org.junit.runners.ParentRunner$2.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$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: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$1.run(URLClassLoader.java:366)     at
 java.net.URLClassLoader$1.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: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>

apploicationContext.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/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="jacksonMessageConverter" class="org.springframework.http.converter.json.MappingJacksonHttpMessageConverter"></bean>

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

</beans>

Sprung database.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="jacksonMessageConverter" class="org.springframework.http.converter.json.MappingJacksonHttpMessageConverter"></bean>

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

</beans>

test case:

@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");
    }
7
  • 1
    Why is it trying to load that class? As far as I can tell, it looks like you're trying to instantiate a bean for a class that's been removed; stop doing that. Commented Nov 19, 2013 at 17:05
  • I am adding my spring bean file please check I'm not creating any with with this class n in my similar other project this code working perfectly well. Commented Nov 19, 2013 at 17:13
  • 2
    Make sure to post your test configuration. Commented Nov 19, 2013 at 17:14
  • I didnt start writing anything in test i'm just loading the context using @ContextConfiguration(locations = {"classpath:mvc-config.xml"}) Commented Nov 19, 2013 at 17:18
  • Without imported xml and TestUserController code, it's hard to help you Commented Nov 19, 2013 at 17:34

2 Answers 2

4

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.

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

Sign up to request clarification or add additional context in comments.

Comments

0

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.

You can find information in this docs of spring link

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.