Spring 3.1 e Hibernate 4, problemas

2 respostas
A

E ae galera, tudo beleza?

Estou migrando meu projeto para o Hibernate 4, o problema é que está sendo muito difícil. Com o Hibernate 3 funcionava direitinho, só agora que começou a dar problemas. Vou listar abaixo passo a passo que eu fiz até agora e abaixo vou colocar a mensagem de erro que está dando.

1 - Atualizei a versão das seguintes bibliotecas:

<dependency>
        <groupId>org.hibernate</groupId>
        <artifactId>hibernate-core</artifactId>
        <version>4.0.1.Final</version>
    </dependency>   
    
    <dependency>
        <groupId>org.hibernate</groupId>
        <artifactId>hibernate-annotations</artifactId>
        <version>3.5.6-Final</version>
    </dependency>
    
     <dependency>
        <groupId>org.hibernate</groupId>
        <artifactId>hibernate-entitymanager</artifactId>
        <version>4.0.1.Final</version>
    </dependency>

2 - Mantive as bibliotecas do hibernate:

<dependency>
        <groupId>org.hibernate</groupId>
        <artifactId>hibernate</artifactId>
        <version>3.2.5.ga</version>
        <exclusions>
            <exclusion>
                <artifactId>commons-logging</artifactId>
                <groupId>commons-logging</groupId>
            </exclusion>
        </exclusions>
    </dependency>
       
    <dependency>
        <groupId>org.hibernate</groupId>
        <artifactId>ejb3-persistence</artifactId>
        <version>1.0.1.GA</version>
    </dependency>

3 - Dentro do meu app-context.xml, troquei hibernate3.HibernateTransactionManager por hibernate4.HibernateTransactionManager e AnnotationSessionFactoryBean por org.springframework.orm.hibernate4.LocalSessionFactoryBean. Também troquei

<property name="basePackages">
			<list>
			      <value>domain.entity</value>
			</list>
	      </property>
por 

<property name="packagesToScan" value="domain.entity"/>

No final das contas ele ficou assim:

<!-- ========================== DATA SOURCE ============================= -->
	<bean id="dataSource"
		class="com.business.security.SecureDataSource">
		<property name="driverClassName" value="org.postgresql.Driver"/>
		<property name="url" value="${jdbc.url}"/>
	</bean>

	<!-- ========================== HIBERNATE ============================= -->
	<bean id="sessionFactory" class="org.springframework.orm.hibernate4.LocalSessionFactoryBean">
            <property name="dataSource" ref="dataSource"/>
            <property name="packagesToScan" value="domain.entity.ope"/>
	      <property name="hibernateProperties">
	         <props>
	            <prop key="hibernate.dialect">org.hibernate.dialect.PostgreSQLDialect</prop>
	            <prop key="hibernate.show_sql">false</prop>
	            <prop key="hibernate.format_sql">true</prop> 		
	            <prop key="hibernate.connection.autocommit">false</prop> 		
                    <prop key="hibernate.c3p0.minPoolSize">5</prop>
                    <prop key="hibernate.c3p0.maxPoolSize">20</prop>
                    <prop key="hibernate.c3p0.timeout">600</prop>
                    <prop key="hibernate.c3p0.max_statement">50</prop>
                    <prop key="hibernate.c3p0.testConnectionOnCheckout">false</prop>
                    <prop key="hibernate.hbm2ddl.auto">update</prop>
	         </props>
	      </property> 
	</bean>
	
   <bean id="transactionManager" class="org.springframework.orm.hibernate4.HibernateTransactionManager">
      <property name="sessionFactory" ref="sessionFactory" />
   </bean>
 
   <tx:annotation-driven transaction-manager="transactionManager" proxy-target-class="true"/>

   <context:annotation-config />
  
   <context:component-scan base-package="domain.service.*" />
   <context:component-scan base-package="domain.repository.*" />
   <context:component-scan base-package="infrastructure.*" />

</beans>

Me aparece a seguinte mensagem de erro:

INFO: Running GlassFish Version: GlassFish Server Open Source Edition 3.1.2.2 (build 5)
INFO: Registered org.glassfish.ha.store.adapter.cache.ShoalBackingStoreProxy for persistence-type = replicated in BackingStoreFactoryRegistry
INFO: Grizzly Framework 1.9.50 started in: 59ms - bound to [0.0.0.0:7676]
INFO: Grizzly Framework 1.9.50 started in: 85ms - bound to [0.0.0.0:3700]
INFO: Grizzly Framework 1.9.50 started in: 102ms - bound to [0.0.0.0:8181]
INFO: Grizzly Framework 1.9.50 started in: 123ms - bound to [0.0.0.0:8080]
INFO: Grizzly Framework 1.9.50 started in: 89ms - bound to [0.0.0.0:4848]
INFO: The Admin Console is already installed, but not yet loaded.
SEVERE: CORE10012: Application previously deployed is not at its original location any more: file:/D:/temp/web/teste.jsf/target/teste.jsf-1.0-SNAPSHOT/
SEVERE: CORE10012: Application previously deployed is not at its original location any more: file:/D:/temp/web/primefaces/target/primefaces-1.0-SNAPSHOT/
INFO: SEC1002: Security Manager is OFF.
INFO: SEC1010: Entering Security Startup Service
INFO: SEC1143: Loading policy provider com.sun.enterprise.security.provider.PolicyWrapper.
INFO: SEC1115: Realm [admin-realm] of classtype [com.sun.enterprise.security.auth.realm.file.FileRealm] successfully created.
INFO: SEC1115: Realm [file] of classtype [com.sun.enterprise.security.auth.realm.file.FileRealm] successfully created.
INFO: SEC1115: Realm [certificate] of classtype [com.sun.enterprise.security.auth.realm.certificate.CertificateRealm] successfully created.
INFO: SEC1011: Security Service(s) Started Successfully
INFO: WEB0169: Created HTTP listener [http-listener-1] on host/port [0.0.0.0:8080]
INFO: WEB0169: Created HTTP listener [http-listener-2] on host/port [0.0.0.0:8181]
INFO: WEB0169: Created HTTP listener [admin-listener] on host/port [0.0.0.0:4848]
INFO: WEB0171: Created virtual server [server]
INFO: WEB0171: Created virtual server [__asadmin]
INFO: WEB0172: Virtual server [server] loaded default web module []
INFO: PWC1412: WebModule[null] ServletContext.log():No Spring WebApplicationInitializer types detected on classpath
INFO: Initializing Mojarra 2.1.6 (SNAPSHOT 20111206) for context '/toro.jsf.ui'
INFO: HV000001: Hibernate Validator 4.3.0.Final
INFO: Running on PrimeFaces 3.2
INFO: WEB0671: Loading application [com.empre_toro.jsf.ui_war_1.0-SNAPSHOT] at [/toro.jsf.ui]
INFO: CORE10010: Loading application com.empre_toro.jsf.ui_war_1.0-SNAPSHOT done in 21.324 ms
INFO: GlassFish Server Open Source Edition 3.1.2.2 (5) startup time : Felix (4.702ms), startup services(22.399ms), total(27.101ms)
INFO: JMX005: JMXStartupService had Started JMXConnector on JMXService URL service:jmx:rmi://192.168.1.3:8686/jndi/rmi://192.168.1.3:8686/jmxrmi
INFO: WEB0169: Created HTTP listener [http-listener-1] on host/port [0.0.0.0:8080]
INFO: Grizzly Framework 1.9.50 started in: 11ms - bound to [0.0.0.0:8080]
INFO: PWC1412: WebModule[null] ServletContext.log():No Spring WebApplicationInitializer types detected on classpath
INFO: Initializing Mojarra 2.1.6 (SNAPSHOT 20111206) for context '/toro.jsf.ui'
INFO: Running on PrimeFaces 3.2
INFO: WEB0671: Loading application [com.empre_toro.jsf.ui_war_1.0-SNAPSHOT] at [/toro.jsf.ui]
INFO: com.empre_toro.jsf.ui_war_1.0-SNAPSHOT was successfully deployed in 9.654 milliseconds.
SEVERE: log4j:WARN File option not set for appender [sql-appender].
SEVERE: log4j:WARN Are you using FileAppender instead of ConsoleAppender?
SEVERE: Error Rendering View[/pages/ope/pais/ListaPais.xhtml]
com.sun.faces.mgbean.ManagedBeanCreationException: Cant instantiate class: com.empre.toro.jsf.ui.usecases.ope.manterPais.controller.PaisController.
	at com.sun.faces.mgbean.BeanBuilder.newBeanInstance(BeanBuilder.java:193)
	at com.sun.faces.mgbean.BeanBuilder.build(BeanBuilder.java:102)
	at com.sun.faces.mgbean.BeanManager.createAndPush(BeanManager.java:409)
	at com.sun.faces.mgbean.BeanManager.create(BeanManager.java:269)
	at com.sun.faces.el.ManagedBeanELResolver.resolveBean(ManagedBeanELResolver.java:244)
	at com.sun.faces.el.ManagedBeanELResolver.getValue(ManagedBeanELResolver.java:116)
	at com.sun.faces.el.DemuxCompositeELResolver._getValue(DemuxCompositeELResolver.java:176)
	at com.sun.faces.el.DemuxCompositeELResolver.getValue(DemuxCompositeELResolver.java:203)
	at com.sun.el.parser.AstIdentifier.getValue(AstIdentifier.java:103)
	at com.sun.el.parser.AstValue.getTarget(AstValue.java:149)
	at com.sun.el.parser.AstValue.getType(AstValue.java:84)
	at com.sun.el.ValueExpressionImpl.getType(ValueExpressionImpl.java:200)
	at com.sun.faces.facelets.el.TagValueExpression.getType(TagValueExpression.java:98)
	at org.primefaces.component.datatable.DataTable.isLazy(DataTable.java:968)
	at org.primefaces.component.datatable.DataTableRenderer.encodeMarkup(DataTableRenderer.java:191)
	at org.primefaces.component.datatable.DataTableRenderer.encodeEnd(DataTableRenderer.java:108)
	at javax.faces.component.UIComponentBase.encodeEnd(UIComponentBase.java:875)
	at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1764)
	at javax.faces.render.Renderer.encodeChildren(Renderer.java:168)
	at javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:845)
	at org.primefaces.renderkit.CoreRenderer.renderChild(CoreRenderer.java:57)
	at org.primefaces.renderkit.CoreRenderer.renderChildren(CoreRenderer.java:45)
	at org.primefaces.component.layout.LayoutUnitRenderer.encodeEnd(LayoutUnitRenderer.java:51)
	at javax.faces.component.UIComponentBase.encodeEnd(UIComponentBase.java:875)
	at org.primefaces.renderkit.CoreRenderer.renderChild(CoreRenderer.java:61)
	at org.primefaces.renderkit.CoreRenderer.renderChildren(CoreRenderer.java:45)
	at org.primefaces.renderkit.CoreRenderer.renderChild(CoreRenderer.java:59)
	at org.primefaces.renderkit.CoreRenderer.renderChildren(CoreRenderer.java:45)
	at org.primefaces.component.layout.LayoutUnitRenderer.encodeEnd(LayoutUnitRenderer.java:51)
	at javax.faces.component.UIComponentBase.encodeEnd(UIComponentBase.java:875)
	at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1764)
	at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1760)
	at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1760)
	at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1760)
	at com.sun.faces.application.view.FaceletViewHandlingStrategy.renderView(FaceletViewHandlingStrategy.java:402)
	at com.sun.faces.application.view.MultiViewHandler.renderView(MultiViewHandler.java:131)
	at com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:121)
	at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101)
	at com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:139)
	at javax.faces.webapp.FacesServlet.service(FacesServlet.java:594)
	at org.apache.catalina.core.StandardWrapper.service(StandardWrapper.java:1550)
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:281)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
	at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:655)
	at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:595)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:161)
	at org.apache.catalina.connector.CoyoteAdapter.doService(CoyoteAdapter.java:331)
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:231)
	at com.sun.enterprise.v3.services.impl.ContainerMapper$AdapterCallable.call(ContainerMapper.java:317)
	at com.sun.enterprise.v3.services.impl.ContainerMapper.service(ContainerMapper.java:195)
	at com.sun.grizzly.http.ProcessorTask.invokeAdapter(ProcessorTask.java:860)
	at com.sun.grizzly.http.ProcessorTask.doProcess(ProcessorTask.java:757)
	at com.sun.grizzly.http.ProcessorTask.process(ProcessorTask.java:1056)
	at com.sun.grizzly.http.DefaultProtocolFilter.execute(DefaultProtocolFilter.java:229)
	at com.sun.grizzly.DefaultProtocolChain.executeProtocolFilter(DefaultProtocolChain.java:137)
	at com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:104)
	at com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:90)
	at com.sun.grizzly.http.HttpProtocolChain.execute(HttpProtocolChain.java:79)
	at com.sun.grizzly.ProtocolChainContextTask.doCall(ProtocolChainContextTask.java:54)
	at com.sun.grizzly.SelectionKeyContextTask.call(SelectionKeyContextTask.java:59)
	at com.sun.grizzly.ContextTask.run(ContextTask.java:71)
	at com.sun.grizzly.util.AbstractThreadPool$Worker.doWork(AbstractThreadPool.java:532)
	at com.sun.grizzly.util.AbstractThreadPool$Worker.run(AbstractThreadPool.java:513)
	at java.lang.Thread.run(Thread.java:662)
Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'sessionFactory' defined in class path resource [app-context.xml]: Invocation of init method failed; nested exception is java.lang.ExceptionInInitializerError
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1455)
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:519)
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:456)
	at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:294)
	at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:225)
	at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:291)
	at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:193)
	at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:567)
	at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:913)
	at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:464)
	at org.springframework.context.support.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:139)
	at org.springframework.context.support.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:93)
	at com.empre.toro.infrastructure.controllers.ProjectController.<init>(ProjectController.java:47)
	at com.empre.toro.infrastructure.controllers.ProjectController.getInstance(ProjectController.java:62)
	at com.empre.toro.infrastructure.controllers.ControllerAbstract.<init>(ControllerAbstract.java:29)
	at com.empre.toro.jsf.ui.usecases.ope.manterPais.controller.PaisController.<init>(PaisController.java:28)
	at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
	at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
	at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
	at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
	at java.lang.Class.newInstance0(Class.java:355)
	at java.lang.Class.newInstance(Class.java:308)
	at com.sun.faces.mgbean.BeanBuilder.newBeanInstance(BeanBuilder.java:188)
	... 63 more
Caused by: java.lang.ExceptionInInitializerError
	at org.springframework.orm.hibernate4.LocalSessionFactoryBean.afterPropertiesSet(LocalSessionFactoryBean.java:259)
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1514)
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1452)
	... 85 more
Caused by: java.lang.IllegalStateException: Expected method not found: java.lang.NoSuchMethodException: org.hibernate.cfg.Configuration.addAnnotatedClass(java.lang.Class)
	at org.springframework.util.ClassUtils.getMethod(ClassUtils.java:627)
	at org.springframework.orm.hibernate4.LocalSessionFactoryBuilder.<clinit>(LocalSessionFactoryBuilder.java:68)
	... 88 more

Agradeço desde já,

Abraços

2 Respostas

L

seu problema é de classload, verifica se não existem jars do hibernate 3 no servidor.

A

E ae longo, fiz o que tu comentou, dei uma revisada geral nas libs.
Removi algumas que estavam sobrando, parece que agora está tudo ok.

Obrigado pela ajuda.

Criado 25 de março de 2013
Ultima resposta 26 de mar. de 2013
Respostas 2
Participantes 2