Probleme Hibernate + spring
salut
Tomcat m'affiche l'erreur suivante ds son fichier log
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60
| ERROR [http-8081-Processor23] - Exception lors de l'envoi de l'évènement contexte initialisé (context initialized) à l'instance de classe d'écoute (listener) org.springframework.web.context.ContextLoaderListener
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'myPersonneDao' defined in ServletContext resource [/WEB-INF/applicationContext.xml]: Error setting property values; nested exception is org.springframework.beans.PropertyAccessExceptionsException: PropertyAccessExceptionsException (1 errors); nested propertyAccessExceptions are: [org.springframework.beans.TypeMismatchException: Failed to convert property value of type [$Proxy0] to required type [net.sf.hibernate.SessionFactory] for property 'sessionFactory']
PropertyAccessExceptionsException (1 errors)
org.springframework.beans.TypeMismatchException: Failed to convert property value of type [$Proxy0] to required type [net.sf.hibernate.SessionFactory] for property 'sessionFactory'
at org.springframework.beans.BeanWrapperImpl.doTypeConversionIfNecessary(BeanWrapperImpl.java:951)
at org.springframework.beans.BeanWrapperImpl.setPropertyValue(BeanWrapperImpl.java:692)
at org.springframework.beans.BeanWrapperImpl.setPropertyValue(BeanWrapperImpl.java:572)
at org.springframework.beans.BeanWrapperImpl.setPropertyValue(BeanWrapperImpl.java:737)
at org.springframework.beans.BeanWrapperImpl.setPropertyValues(BeanWrapperImpl.java:764)
at org.springframework.beans.BeanWrapperImpl.setPropertyValues(BeanWrapperImpl.java:753)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1057)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:857)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:378)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:233)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:145)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:283)
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:313)
at org.springframework.web.context.support.AbstractRefreshableWebApplicationContext.refresh(AbstractRefreshableWebApplicationContext.java:139)
at org.springframework.web.context.ContextLoader.createWebApplicationContext(ContextLoader.java:246)
at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:184)
at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:49)
at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:3764)
at org.apache.catalina.core.StandardContext.start(StandardContext.java:4216)
at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:760)
at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:740)
at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:544)
at org.apache.catalina.startup.HostConfig.deployDirectory(HostConfig.java:920)
at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:519)
at org.apache.catalina.startup.HostConfig.check(HostConfig.java:1220)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.apache.commons.modeler.BaseModelMBean.invoke(BaseModelMBean.java:457)
at com.sun.jmx.mbeanserver.DynamicMetaDataImpl.invoke(Unknown Source)
at com.sun.jmx.mbeanserver.MetaDataImpl.invoke(Unknown Source)
at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.invoke(Unknown Source)
at com.sun.jmx.mbeanserver.JmxMBeanServer.invoke(Unknown Source)
at org.apache.catalina.manager.ManagerServlet.check(ManagerServlet.java:1397)
at org.apache.catalina.manager.ManagerServlet.deploy(ManagerServlet.java:815)
at org.apache.catalina.manager.HTMLManagerServlet.deployInternal(HTMLManagerServlet.java:249)
at org.apache.catalina.manager.HTMLManagerServlet.doGet(HTMLManagerServlet.java:96)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:690)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:269)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:210)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:174)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:525)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:108)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:151)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:870)
at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:665)
at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:528)
at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:81)
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:685)
at java.lang.Thread.run(Unknown Source)
INFO [http-8081-Processor23] - Closing Spring root WebApplicationContext |
il me semble qu'il y a un mixage entre Hibernate 2 et 3 jars par ce que le package net.sf.hibernate.SessionFactory est ds Hibernate v2. mais je suis pas sur.
j'ai vérifié partout s'il y a l'utilisation de packages commencant par net.sf (hibernate2), le seul endroit ou ils se trouvent c'est ds le fichiers de configurantion de meddlegen, que j'ai utilisé pour géner les fichiers de mapping
le fichier middlegen
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115
| <?xml version="1.0" encoding="utf-8"?>
<!--
This build file is generated by MiddlegenIDE.
MiddlegenIDE: http://ultimania.org/middlegenide/
-->
<project name="Middlegen Hibernate" default="compile" basedir="../.">
<property file=".././build.properties"/>
<property name="hibernate.cascade" value="all" />
<property name="package" value="org.ultimania.model" />
<property name="gen.xdoclet-tag" value="false" />
<property name="gui" value="true" />
<property name="jdbc.jar" value="C:\Documents and Settings\jamal\Mes documents\Appli\springmvc4-code\mvc-37\lib\mysql-connector-java-3.1.9-bin.jar" />
<property name="database.driver" value="com.mysql.jdbc.Driver" />
<property name="lib.dir" value="/C:/Documents and Settings/jamal/Mes documents/LOGICIELS/wtp-all-in-one-sdk-R-1.5.0-200606281455-win32/eclipse/plugins/net.sf.middlegen_2.1.91/lib/" />
<property name="database.url" value="jdbc:mysql://localhost/dbpersonnes" />
<property name="database.userid" value="root" />
<property name="database.password" value="" />
<property name="database.schema" value="" />
<property name="database.catalog" value="" />
<property name="dest.dir" value="WEB-INF/src" />
<target name="init" depends="prepare,fail-if-no-middlegen,fail-if-no-hibernate,fail-if-no-hibernate-ext">
<taskdef
name="middlegen"
classname="middlegen.MiddlegenTask"
classpathref="middlegen.classpath"
/>
<taskdef
name="hbm2java"
classname="net.sf.hibernate.tool.hbm2java.Hbm2JavaTask"
classpathref="hibernate-ext.classpath"
/>
<mkdir dir="${dest.dir}"/>
</target>
<target name="prepare">
<path id="middlegen.classpath">
<pathelement path="${jdbc.jar}"/>
<fileset dir="${lib.dir}" includes="*.jar"/>
</path>
<path id="hibernate-ext.classpath">
<fileset dir="${lib.dir}" includes="*.jar"/>
</path>
<available property="middlegen" classname="middlegen.MiddlegenTask" classpathref="middlegen.classpath"/>
<available property="hibernate" classname="net.sf.hibernate.Hibernate" classpathref="hibernate-ext.classpath"/>
<available property="hibernate-ext" classname="net.sf.hibernate.tool.hbm2java.Hbm2JavaTask" classpathref="hibernate-ext.classpath"/>
</target>
<target name="fail-if-no-middlegen" unless="middlegen">
<fail>
Middlegen is not found. Please install Middlegen.
</fail>
</target>
<target name="fail-if-no-hibernate" unless="hibernate">
<fail>
Hibernate is not found. Please install Hibernate.
</fail>
</target>
<target name="fail-if-no-hibernate-ext" unless="hibernate-ext">
<fail>
Hibernate-Extension is not found. Please install Hibernate-Extenstion.
</fail>
</target>
<target name="gen-hbm" depends="init">
<middlegen
appname="org.ultimania.model"
prefsdir="."
gui="${gui}"
databaseurl="${database.url}"
driver="${database.driver}"
username="${database.userid}"
password="${database.password}"
schema="${database.schema}"
catalog="${database.catalog}"
>
<hibernate
version="3.0"
destination="${dest.dir}"
package="${package}"
genXDocletTags="${gen.xdoclet-tag}"
standardCascade="${hibernate.cascade}"
javaTypeMapper="middlegen.plugins.hibernate.HibernateJavaTypeMapper"
/>
<table name="personnes" />
</middlegen>
</target>
<target name="gen-java" depends="gen-hbm">
<hbm2java output="${dest.dir}">
<fileset dir="${dest.dir}">
<include name="**/*.hbm.xml" />
</fileset>
</hbm2java>
</target>
<target name="compile" depends="gen-java">
</target>
</project> |
mais il me semble qu'il intervient plus une fois les fichiers hbm sont crees.
et si vous voulez voir applicationContext.xml :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62
| <!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN"
"http://www.springframework.org/dtd/spring-beans.dtd">
<beans>
<bean id="dataSource"
class="org.springframework.jdbc.datasource.DriverManagerDataSource" >
<property name="driverClassName">
<value>com.mysql.jdbc.Driver</value>
</property>
<property name="url">
<value>jdbc:mysql://localhost/dbpersonnes</value>
</property>
<property name="username"><value>root</value></property>
<property name="password"><value></value></property>
</bean>
<bean id="sessionFactory"
class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
<property name="dataSource">
<ref local="dataSource"/>
</property>
<property name="mappingResources">
<list>
<value>Personnes.hbm.xml</value>
</list>
</property>
<property name="hibernateProperties">
<props>
<prop key="hibernate.dialect">
org.hibernate.dialect.MySQLDialect
</prop>
<prop key="hbm2java">update</prop>
</props>
</property>
</bean>
<bean id="myTransactionManager"
class="org.springframework.orm.hibernate3.HibernateTransactionManager">
<property name="sessionFactory">
<ref local="sessionFactory"/>
</property>
</bean>
<bean id="hibernateInterceptor" class="org.springframework.orm.hibernate3.HibernateInterceptor">
<property name="sessionFactory">
<ref bean="sessionFactory"/>
</property>
</bean>
<bean id="myPersonneDao" class="istia.st.springmvc.personnes.dao.DaoImplCommon">
<property name="sessionFactory"><ref local="sessionFactory"/></property>
</bean>
<bean id="personneManager" >
<property name="sessionFactory">
<bean class="istia.st.springmvc.personnes.service.ServiceImpl">
<property name="myPersonneDao" ref="myPersonneDao"/>
</bean>
</property>
</bean>
</beans> |
merci pour votre aide