2016-02-08 2 views
1

Я пытаюсь интегрировать спящий режим с Spring. До тех пор, пока я не буду вводить спящий код & в библиотеки, он отлично работает. Вот код,Spring MVC Hibernate Ошибка создания bean с именем 'sessionFactory'

радушны-servlet.xml

<?xml version="1.0" encoding="UTF-8"?> 
<beans xmlns="http://www.springframework.org/schema/beans" 
    xmlns:context="http://www.springframework.org/schema/context" 
    xmlns:p="http://www.springframework.org/schema/p" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    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/mvc 
     http://www.springframework.org/schema/mvc/spring-mvc.xsd" 
    xmlns:mvc="http://www.springframework.org/schema/mvc"> 

    <context:annotation-config /> 
    <context:component-scan base-package="java4s" /> 
    <mvc:annotation-driven /> 
    <bean id="EmployeeService" class="java4s.service.EmployeeServiceImpl" /> 

    <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"> 
     <property name="prefix" value="/jsp/" /> 
     <property name="suffix" value=".jsp" /> 
    </bean> 

<bean id="sessionFactory" 
     class="org.springframework.orm.hibernate3.LocalSessionFactoryBean"> 
     <property name="dataSource" ref="dataSource" /> 
     <property name="configLocation"> 
      <value>classpath:hibernate.cfg.xml</value> 
     </property> 
     <property name="hibernateProperties"> 
      <props> 
       <prop key="hibernate.dialect">${jdbc.dialect}</prop> 
       <prop key="hibernate.show_sql">true</prop> 
      </props> 
     </property> 
    </bean> 

    <bean id="dataSource" 
    class="org.springframework.jdbc.datasource.DriverManagerDataSource" 
    p:driverClassName="oracle.jdbc.pool.OracleDataSource" 
    p:url="jdbc:oracle:thin:@localhost:1521:IMS" 
    p:username="username" 
    p:password="password" /> 
</beans> 

Библиотеки

antlr-2.7.6 
c3p0-0.9.1 
cglib-2.2 
com.springsource.org.aopalliance-1.0.0 
commons-collections-3.1 
dom4j-1.6.1 
ejb3-persistence 
hibernate-commons-annotations-3.2.0.Final 
hibernate3 
hibernate-entitymanager-3.6.10.Final 
hibernate-tools-3.6.0.CR1 
javassist-3.12.0.GA 
jboss-logging-3.3.0.Final 
jstl-api 
jstl-impl 
jta-1.1 
log4j-1.2.11 
ojdbc6 
org-apache-commons-logging 
oscache-2.1 
slf4j-api-1.6.1 
slf4j-simple-1.6.1 
spring-aop-3.2.3.RELEASE 
spring-aspects-3.2.3.RELEASE 
spring-beans-3.2.3.RELEASE 
spring-build-src-3.2.3.RELEASE 
spring-context-3.2.3.RELEASE 
spring-context-support-3.2.3.RELEASE 
spring-core-3.2.3.RELEASE 
spring-expression-3.2.3.RELEASE 
spring-instrument-3.2.3.RELEASE 
spring-instrument-tomcat-3.2.3.RELEASE 
spring-jdbc-3.2.3.RELEASE 
spring-jms-3.2.3.RELEASE 
spring-orm-3.2.3.RELEASE 
spring-oxm-3.2.3.RELEASE 
spring-struts-3.2.3.RELEASE 
spring-test-3.2.3.RELEASE 
spring-tx-3.2.3.RELEASE 
spring-web-3.2.3.RELEASE 
spring-webmvc-3.2.3.RELEASE 
spring-webmvc-portlet-3.2.3.RELEASE 

Ошибка

org.springframework.beans.factory.BeanCreationException: Error creating 

bean with name 'sessionFactory' defined in ServletContext resource [/WEB-INF/welcome-servlet.xml]: Invocation of init method failed; nested exception is org.hibernate.MappingException: An AnnotationConfiguration instance is required to use <mapping class="java4s.model.Employee"/> 
    org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1482) 
    org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:521) 
    org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:458) 
    org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:295) 
    org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:223) 
    org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:292) 
    org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:194) 
    org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:608) 
    org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:932) 
    org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:479) 
    org.springframework.web.servlet.FrameworkServlet.configureAndRefreshWebApplicationContext(FrameworkServlet.java:651) 
    org.springframework.web.servlet.FrameworkServlet.createWebApplicationContext(FrameworkServlet.java:599) 
    org.springframework.web.servlet.FrameworkServlet.createWebApplicationContext(FrameworkServlet.java:665) 
    org.springframework.web.servlet.FrameworkServlet.initWebApplicationContext(FrameworkServlet.java:518) 
    org.springframework.web.servlet.FrameworkServlet.initServletBean(FrameworkServlet.java:459) 
    org.springframework.web.servlet.HttpServletBean.init(HttpServletBean.java:136) 
    javax.servlet.GenericServlet.init(GenericServlet.java:160) 
    org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472) 
    org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:99) 
    org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:953) 
    org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:408) 
    org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1023) 
    org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:589) 
    org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:310) 
    java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) 
    java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) 
    java.lang.Thread.run(Thread.java:744) 

root cause 

org.hibernate.MappingException: An AnnotationConfiguration instance is required to use <mapping class="java4s.model.Employee"/> 
    org.hibernate.cfg.Configuration.parseMappingElement(Configuration.java:1597) 
    org.hibernate.cfg.Configuration.parseSessionFactory(Configuration.java:1552) 
    org.hibernate.cfg.Configuration.doConfigure(Configuration.java:1531) 
    org.hibernate.cfg.Configuration.doConfigure(Configuration.java:1505) 
    org.hibernate.cfg.Configuration.configure(Configuration.java:1440) 
    org.springframework.orm.hibernate3.LocalSessionFactoryBean.buildSessionFactory(LocalSessionFactoryBean.java:645) 
    org.springframework.orm.hibernate3.AbstractSessionFactoryBean.afterPropertiesSet(AbstractSessionFactoryBean.java:188) 
    org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1541) 
    org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1479) 
    org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:521) 
    org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:458) 
    org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:295) 
    org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:223) 
    org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:292) 
    org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:194) 
    org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:608) 
    org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:932) 
    org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:479) 
    org.springframework.web.servlet.FrameworkServlet.configureAndRefreshWebApplicationContext(FrameworkServlet.java:651) 
    org.springframework.web.servlet.FrameworkServlet.createWebApplicationContext(FrameworkServlet.java:599) 
    org.springframework.web.servlet.FrameworkServlet.createWebApplicationContext(FrameworkServlet.java:665) 
    org.springframework.web.servlet.FrameworkServlet.initWebApplicationContext(FrameworkServlet.java:518) 
    org.springframework.web.servlet.FrameworkServlet.initServletBean(FrameworkServlet.java:459) 
    org.springframework.web.servlet.HttpServletBean.init(HttpServletBean.java:136) 
    javax.servlet.GenericServlet.init(GenericServlet.java:160) 
    org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472) 
    org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:99) 
    org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:953) 
    org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:408) 
    org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1023) 
    org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:589) 
    org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:310) 
    java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) 
    java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) 
    java.lang.Thread.run(Thread.java:744) 

Я знаю, что я получаю сообщение об ошибке из-за гибернации кода т.е.

<bean id="sessionFactory" 
     class="org.springframework.orm.hibernate3.LocalSessionFactoryBean"> 
     <property name="dataSource" ref="dataSource" /> 
     <property name="configLocation"> 
      <value>classpath:hibernate.cfg.xml</value> 
     </property> 
     <property name="hibernateProperties"> 
      <props> 
       <prop key="hibernate.dialect">${jdbc.dialect}</prop> 
       <prop key="hibernate.show_sql">true</prop> 
      </props> 
     </property> 
    </bean> 

Как я могу заставить его работать?

ответ

0

Попробуйте с

<bean id="sessionFactory" 
     class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean"> 

вместо

<bean id="sessionFactory" 
     class="org.springframework.orm.hibernate3.LocalSessionFactoryBean"> 
+0

Не работает! Получая ту же ошибку –

+0

, предоставьте файл .hbm и файл конфигурации –

+0

@HarshitShrivastava Он должен работать. Попробуйте установить точку останова на 'AnnotationSessionFactoryBean.setConfigurationClass()'. И версия 'hibernate3.jar' выглядит странно. –

Смежные вопросы