Tomcat com Datasource

4 respostas
fmy_1

Pessoal estou tentando configar o tomcat 5.5 com o datasource, segue a configuração:

Persistence.xml

<?xml version="1.0" encoding="UTF-8" ?>
<persistence-unit name="pwu" transaction-type="JTA">
	<provider>org.hibernate.ejb.HibernatePersistence</provider>
	<jta-data-source>java:comp/env/jdbc/pwu</jta-data-source>
	<class>br.com.techforti.msd.pwu.model.AtributoModel</class>
	<class>br.com.techforti.msd.pwu.model.BrickModel</class>
	<class>br.com.techforti.msd.pwu.model.DominioModel</class>
	<class>br.com.techforti.msd.pwu.model.EstruturaModel</class>
	<class>br.com.techforti.msd.pwu.model.GrupoAcessoModel</class>
	<class>br.com.techforti.msd.pwu.model.GrupoAcessoAtributoModel</class>
	<class>br.com.techforti.msd.pwu.model.GrupoAcessoPermissaoModel</class>
	<class>br.com.techforti.msd.pwu.model.GrupoAcessoUsuarioModel</class>		
	<class>br.com.techforti.msd.pwu.model.PermissaoModel</class>
	<class>br.com.techforti.msd.pwu.model.RegiaoModel</class>
	<class>br.com.techforti.msd.pwu.model.SetorizacaoModel</class>
	<class>br.com.techforti.msd.pwu.model.TesteModel</class>
	<class>br.com.techforti.msd.pwu.model.TipoAtributoModel</class>
	<class>br.com.techforti.msd.pwu.model.TipoJustificativaModel</class>
	<class>br.com.techforti.msd.pwu.model.UsuarioViewModel</class>
	<class>br.com.techforti.msd.pwu.model.SolicitacaoModel</class>
	<class>br.com.techforti.msd.pwu.model.SolicitacaoStatusModel</class>
	<class>br.com.techforti.msd.pwu.model.StatusSolicitacaoModel</class>
	<class>br.com.techforti.msd.pwu.model.SolicitacaoItensModel</class>
	<class>br.com.techforti.msd.pwu.model.NotificacaoModel</class>
	<class>br.com.techforti.msd.pwu.model.JanelaSolicitacaoModel</class>
	<class>br.com.techforti.msd.pwu.model.AlocacaoModel</class>
	<class>br.com.techforti.msd.pwu.model.AlocacaoHistoricoModel</class>
	<class>br.com.techforti.msd.pwu.model.AlocacaoViewModel</class>
	<class>br.com.techforti.msd.pwu.model.PoolModel</class>
	<class>br.com.techforti.msd.pwu.model.PoolBrickModel</class>
	<class>br.com.techforti.msd.pwu.model.AtributoUsuarioModel</class>	
	<class>br.com.techforti.msd.pwu.model.AlocacaoProcessadaModel</class>
	<class>br.com.techforti.msd.pwu.model.ProcessarArquivoControleModel</class>	
	<class>br.com.techforti.msd.pwu.model.CadastroWebViewModel</class>
	
	<properties>
		<property name="hibernate.validator.autoregister_listeners" value="false" />
		<property name="hibernate.dialect" value="org.hibernate.dialect.Oracle10gDialect" />

		<property name="hibernate.show_sql" value="false" />
		<property name="hibernate.format_sql" value="true" />
		<property name="use_sql_comments" value="true" />

		<property name="hibernate.query.substitutions" value="true" />
		<property name="hibernate.transaction.flush_before_completion" value="true" />

		<!-- 
			<property name="hibernate.generate_ddl" value="true" />
			<property name="hibernate.hbm2ddl.auto" value="update" />
		 -->

	</properties>
</persistence-unit>

web.xml

<resource-ref>
 <description>Oracle Datasource example</description>
 <res-ref-name>jdbc/pwu</res-ref-name>
 <res-type>javax.sql.DataSource</res-type>
 <res-auth>Container</res-auth>
</resource-ref>

Apache/Conf/context.xml

Erro ao subir o Tomcat

Error creating bean with name entityManagerFactory defined in class path resource [applicationContextDAO.xml]: Invocation of init method failed; nested exception is javax.persistence.PersistenceException: [PersistenceUnit: pwu] Unable to build EntityManagerFactory

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.web.context.ContextLoader.configureAndRefreshWebApplicationContext(ContextLoader.java:385)

at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:284)

at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:111)

at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:3729)

at org.apache.catalina.core.StandardContext.start(StandardContext.java:4187)

at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:759)

at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:739)

at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:524)

at org.apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:809)

at org.apache.catalina.startup.HostConfig.deployWARs(HostConfig.java:698)

at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:472)

at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1122)

at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:310)

at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:119)

at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1021)

at org.apache.catalina.core.StandardHost.start(StandardHost.java:718)

at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1013)

at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:442)

at org.apache.catalina.core.StandardService.start(StandardService.java:450)

at org.apache.catalina.core.StandardServer.start(StandardServer.java:709)

at org.apache.catalina.startup.Catalina.start(Catalina.java:551)

at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)

at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)

at java.lang.reflect.Method.invoke(Method.java:597)

at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:294)

at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:432)

Caused by: javax.persistence.PersistenceException: [PersistenceUnit: pwu] Unable to build EntityManagerFactory

at org.hibernate.ejb.Ejb3Configuration.buildEntityManagerFactory(Ejb3Configuration.java:915)

at org.hibernate.ejb.HibernatePersistence.createContainerEntityManagerFactory(HibernatePersistence.java:74)

at org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean.createNativeEntityManagerFactory(LocalContainerEntityManagerFactoryBean.java:268)

at org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.afterPropertiesSet(AbstractEntityManagerFactoryBean.java:310)

at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1514)

at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1452)

 36 more

Caused by: org.hibernate.HibernateException: The chosen transaction strategy requires access to the JTA TransactionManager

at org.hibernate.impl.SessionFactoryImpl.(SessionFactoryImpl.java:390)

at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1872)

at org.hibernate.ejb.Ejb3Configuration.buildEntityManagerFactory(Ejb3Configuration.java:906)

 41 more

17:51:54,477 ERROR [/pwu-web]:3733 - Exception sending context initialized event to listener instance of class org.springframework.web.context.ContextLoaderListener

org.springframework.beans.factory.BeanCreationException: Error creating bean with name entityManagerFactory defined in class path resource [applicationContextDAO.xml]: Invocation of init method failed; nested exception is javax.persistence.PersistenceException: [PersistenceUnit: pwu] Unable to build EntityManagerFactory

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.web.context.ContextLoader.configureAndRefreshWebApplicationContext(ContextLoader.java:385)

at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:284)

at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:111)

at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:3729)

at org.apache.catalina.core.StandardContext.start(StandardContext.java:4187)

at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:759)

at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:739)

at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:524)

at org.apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:809)

at org.apache.catalina.startup.HostConfig.deployWARs(HostConfig.java:698)

at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:472)

at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1122)

at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:310)

at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:119)

at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1021)

at org.apache.catalina.core.StandardHost.start(StandardHost.java:718)

at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1013)

at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:442)

at org.apache.catalina.core.StandardService.start(StandardService.java:450)

at org.apache.catalina.core.StandardServer.start(StandardServer.java:709)

at org.apache.catalina.startup.Catalina.start(Catalina.java:551)

at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)

at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)

at java.lang.reflect.Method.invoke(Method.java:597)

at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:294)

at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:432)

Caused by: javax.persistence.PersistenceException: [PersistenceUnit: pwu] Unable to build EntityManagerFactory

at org.hibernate.ejb.Ejb3Configuration.buildEntityManagerFactory(Ejb3Configuration.java:915)

at org.hibernate.ejb.HibernatePersistence.createContainerEntityManagerFactory(HibernatePersistence.java:74)

at org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean.createNativeEntityManagerFactory(LocalContainerEntityManagerFactoryBean.java:268)

at org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.afterPropertiesSet(AbstractEntityManagerFactoryBean.java:310)

at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1514)

at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1452)

 36 more

Caused by: org.hibernate.HibernateException: The chosen transaction strategy requires access to the JTA TransactionManager

at org.hibernate.impl.SessionFactoryImpl.(SessionFactoryImpl.java:390)

at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1872)

at org.hibernate.ejb.Ejb3Configuration.buildEntityManagerFactory(Ejb3Configuration.java:906)

 41 more

DUVIDA

Alguem sabe como configurar o ds no tomcat? Sabe porque ocorre este erro?

Obrigado galera, abraços !!

4 Respostas

Ataxexe

Não é problema no datasource e, sim, no persistence unit. Você está usando JTA mas não indicou o transaction manager.

Você pode trocar seu persistence unit pra

&lt;persistence-unit name="smarthome" transaction-type="RESOURCE_LOCAL"&gt;

Ou indicar um transaction manager.

fmy_1

Fiz a alteração e agora ocorre o seguinte erro:

13:48:29,214 INFO LocalContainerEntityManagerFactoryBean:264 - Building JPA container EntityManagerFactory for persistence unit ‘pwu’
13:48:34,567 ERROR JDBCExceptionReporter:234 - Cannot load JDBC driver class ‘oracle.jdbc.OracleDriver’

Já rodei a aplicação com este driver, alguem sabe o que pode ser? Será que tenho que colocar este driver no lib do tomcat?

Obrigado pessoa !!

Ataxexe

fmy_1:
Fiz a alteração e agora ocorre o seguinte erro:

13:48:29,214 INFO LocalContainerEntityManagerFactoryBean:264 - Building JPA container EntityManagerFactory for persistence unit ‘pwu’
13:48:34,567 ERROR JDBCExceptionReporter:234 - Cannot load JDBC driver class ‘oracle.jdbc.OracleDriver’

Já rodei a aplicação com este driver, alguem sabe o que pode ser? Será que tenho que colocar este driver no lib do tomcat?

Obrigado pessoa !!

Se você usa um recurso do container (datasource) que tem uma dependência fora dele (o driver JDBC), deve prover as dependências pra ele funcionar.

fmy_1

!RESOLVIDO!

Então pessoal, fiz a alteração recomendada pelo Ataxexe.

  • Troquei o JTA para RESOURCE_LOCAL
  • Dentro do apache-tomcat na pasta commons/lib coloquei o driver do Oracle.
  • Dentro do apache-tomcat/conf/context.xml alterei a url que estava assim: oracle.jdbc.OracleDriver para assim: oracle.jdbc.oracleDriver (com o ‘O’ do oracle minusculo).

E pronto funcionou. Obrigado Ataxexe.

Criado 7 de agosto de 2012
Ultima resposta 8 de ago. de 2012
Respostas 4
Participantes 2