Tran Thien Chien
Tran Thien Chien

Reputation: 681

Spring MVC: xml mapping error

I did configured annotation mapping successfully, but when i configure by xml mapping everything gone wrong.

Log.

org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'homeController': Injection of autowired dependencies failed; nested exception is org.springframework.beans.factory.BeanCreationException: Could not autowire field: private spider.mathserver.service.CategoryService spider.mathserver.controller.HomeController.categoryService; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'cateogryServiceImpl': Injection of autowired dependencies failed; nested exception is org.springframework.beans.factory.BeanCreationException: Could not autowire field: spider.mathserver.dao.CategoryDao spider.mathserver.service.impl.CateogryServiceImpl.categoryDao; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'categoryDaoImpl': Injection of autowired dependencies failed; nested exception is org.springframework.beans.factory.BeanCreationException: Could not autowire field: private org.hibernate.SessionFactory spider.mathserver.dao.impl.ObjectDaoImpl.sessionFactory; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'sessionFactory' defined in ServletContext resource [/WEB-INF/spring/appServlet/servlet-context.xml]: Invocation of init method failed; nested exception is org.hibernate.MappingNotFoundException: resource: Category.hbm.xml not found at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessPropertyValues(AutowiredAnnotationBeanPostProcessor.java:292) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1185) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:537) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:475) at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:302) at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:228) at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:298) at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:193) at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:703) at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:760) at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:482) at org.springframework.web.servlet.FrameworkServlet.configureAndRefreshWebApplicationContext(FrameworkServlet.java:658) at org.springframework.web.servlet.FrameworkServlet.createWebApplicationContext(FrameworkServlet.java:624) at org.springframework.web.servlet.FrameworkServlet.createWebApplicationContext(FrameworkServlet.java:672) at org.springframework.web.servlet.FrameworkServlet.initWebApplicationContext(FrameworkServlet.java:543) at org.springframework.web.servlet.FrameworkServlet.initServletBean(FrameworkServlet.java:484) at org.springframework.web.servlet.HttpServletBean.init(HttpServletBean.java:136) at javax.servlet.GenericServlet.init(GenericServlet.java:158) at org.apache.catalina.core.StandardWrapper.initServlet(StandardWrapper.java:1231) at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1144) at org.apache.catalina.core.StandardWrapper.allocate(StandardWrapper.java:817) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:135) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:106) at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:502) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:142) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:79) at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:617) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:88) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:518) at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1091) at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:668) at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1521) at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1478) at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) at java.lang.Thread.run(Unknown Source)

hibernate.cfg.xml

<mapping resource="spider/mathserver/hbm/Category.hbm.xml" />
            <mapping resource="spider/mathserver/hbm/Anwser.hbm.xml" />
            <mapping resource="spider/mathserver/hbm/Wiki.hbm.xml" />
            <mapping resource="spider/mathserver/hbm/Question.hbm.xml" />
            <mapping resource="spider/mathserver/hbm/Topic.hbm.xml" />

web.xml

    <display-name>Sample Spring Maven Project</display-name>

    <servlet>
        <servlet-name>appServlet</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
        <init-param>
            <param-name>contextConfigLocation</param-name>
            <param-value>/WEB-INF/spring/appServlet/servlet-context.xml</param-value>
        </init-param>
        <load-on-startup>1</load-on-startup>
    </servlet>

    <servlet-mapping>
        <servlet-name>appServlet</servlet-name>
        <url-pattern>/</url-pattern>
    </servlet-mapping>

servlet-context.xml

<context:component-scan base-package="spider.mathserver" />     <!--
   <mvc:annotation-driven /> -->

        <beans:bean id="propertyConfigurer"         class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"
        p:location="/WEB-INF/jdbc.properties" />

        <beans:bean id="dataSource"         class="org.springframework.jdbc.datasource.DriverManagerDataSource"
        p:driverClassName="${jdbc.driverClassName}"
   p:url="${jdbc.databaseurl}"      p:username="${jdbc.username}"
   p:password="${jdbc.password}" />


        <beans:bean id="sessionFactory"         class="org.springframework.orm.hibernate4.LocalSessionFactoryBean">
        <beans:property name="dataSource" ref="dataSource" />
        <beans:property name="configLocation">
            <beans:value>classpath:hibernate.cfg.xml</beans:value>
        </beans:property>       <!-- <property name="configurationClass"> -->
        <!-- <value>org.hibernate.cfg.AnnotationConfiguration</value> -->
        <!-- </property> -->

            <beans:property name="packagesToScan">          <beans:list>
                    <beans:value>spider.mathserver.hbm</beans:value>            </beans:list>       </beans:property>
                    <beans:property name="hibernateProperties">             <beans:props>
                    <beans:prop key="hibernate.dialect">${jdbc.dialect}</beans:prop>
                    <beans:prop key="hibernate.show_sql">true</beans:prop>          </beans:props>      </beans:property>

        </beans:bean>


        <tx:annotation-driven />    <beans:bean id="transactionManager"         class="org.springframework.orm.hibernate4.HibernateTransactionManager">
        <beans:property name="sessionFactory" ref="sessionFactory" />
    </beans:bean>

Upvotes: 0

Views: 502

Answers (1)

pmverma
pmverma

Reputation: 1703

nested exception is org.hibernate.MappingNotFoundException: resource: Category.hbm.xml not found, your mapping file not found. Because mapping inside your hibernate.cfg.xml indicating to wrong place.

Try putting the mapping under WEB-INF/spider/mathserver/hbm/ and change

<mapping resource="classpath:spider/mathserver/hbm/Category.hbm.xml" />
<mapping resource="classpath:spider/mathserver/hbm/Anwser.hbm.xml" />
<mapping resource="classpath:spider/mathserver/hbm/Wiki.hbm.xml" />
<mapping resource="classpath:spider/mathserver/hbm/Question.hbm.xml" />
<mapping resource="classpath:spider/mathserver/hbm/Topic.hbm.xml" />

Upvotes: 0

Related Questions