JPA 2 (EclipseLink) com Spring 3 + JSF 2

8 respostas
edvaldo.santiago

Boa noite pessoal,
Estou fazendo uma aplicação usando JPA2 (EclipseLink) integrado com Spring 3 + JSF 2.
Até aí tudo bem estou usando org.springframework.orm.jpa.LocalEntityManagerFactoryBean
para o Spring se conectar com o JPA 2.
Só quando passo para org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean
Apresenda o Seguinte erro quando subo o TomCat 7.

<blockquote>

INFO: Initializing Spring root WebApplicationContext

22/05/2011 20:22:44 org.springframework.web.context.ContextLoader initWebApplicationContext

INFO: Root WebApplicationContext: initialization started

22/05/2011 20:22:44 org.springframework.context.support.AbstractApplicationContext prepareRefresh

INFO: Refreshing Root WebApplicationContext: startup date [Sun May 22 20:22:44 BRT 2011]; root of context hierarchy

22/05/2011 20:22:44 org.springframework.beans.factory.xml.XmlBeanDefinitionReader loadBeanDefinitions

INFO: Loading XML bean definitions from ServletContext resource [/WEB-INF/springBeans.xml]

22/05/2011 20:22:45 org.springframework.orm.jpa.LocalEntityManagerFactoryBean createNativeEntityManagerFactory

INFO: Building JPA EntityManagerFactory for persistence unit 'PinoquioWeb

22/05/2011 20:22:45 org.springframework.beans.factory.support.DefaultSingletonBeanRegistry destroySingletons

INFO: Destroying singletons in org.springframework.beans.factory.support.DefaultListableBeanFactory@92b1a1: defining beans [org.springframework.context.annotation.internalConfigurationAnnotationProcessor,org.springframework.context.annotation.internalAutowiredAnnotationProcessor,org.springframework.context.annotation.internalRequiredAnnotationProcessor,org.springframework.context.annotation.internalCommonAnnotationProcessor,org.springframework.context.annotation.internalPersistenceAnnotationProcessor,jpaVendorAdapter,persistence,emf,txManager,org.springframework.aop.config.internalAutoProxyCreator,org.springframework.transaction.annotation.AnnotationTransactionAttributeSource#0,org.springframework.transaction.interceptor.TransactionInterceptor#0,org.springframework.transaction.config.internalTransactionAdvisor]; root of factory hierarchy

22/05/2011 20:22:45 org.springframework.web.context.ContextLoader initWebApplicationContext

GRAVE: Context initialization failed

org.springframework.beans.factory.BeanCreationException: Error creating bean with name persistence defined in ServletContext resource [/WEB-INF/springBeans.xml]: Initialization of bean failed; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name emf defined in ServletContext resource [/WEB-INF/springBeans.xml]: Invocation of init method failed; nested exception is javax.persistence.PersistenceException: No Persistence provider for EntityManager named PinoquioWeb

at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:521)

at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:450)

at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:290)

at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222)

at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:287)

at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:193)

at org.springframework.context.support.AbstractApplicationContext.registerBeanPostProcessors(AbstractApplicationContext.java:687)

at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:408)

at org.springframework.web.context.ContextLoader.createWebApplicationContext(ContextLoader.java:272)

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

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

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

at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5016)

at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:140)

at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:1035)

at org.apache.catalina.core.StandardHost.startInternal(StandardHost.java:738)

at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:140)

at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:1035)

at org.apache.catalina.core.StandardEngine.startInternal(StandardEngine.java:289)

at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:140)

at org.apache.catalina.core.StandardService.startInternal(StandardService.java:442)

at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:140)

at org.apache.catalina.core.StandardServer.startInternal(StandardServer.java:674)

at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:140)

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

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.catalina.startup.Bootstrap.start(Bootstrap.java:303)

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

Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name emf defined in ServletContext resource [/WEB-INF/springBeans.xml]: Invocation of init method failed; nested exception is javax.persistence.PersistenceException: No Persistence provider for EntityManager named PinoquioWeb

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

at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:513)

at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:450)

at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:290)

at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222)

at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:287)

at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:193)

at org.springframework.beans.factory.support.DefaultListableBeanFactory.getBeansOfType(DefaultListableBeanFactory.java:386)

at org.springframework.beans.factory.BeanFactoryUtils.beansOfTypeIncludingAncestors(BeanFactoryUtils.java:266)

at org.springframework.dao.support.PersistenceExceptionTranslationInterceptor.detectPersistenceExceptionTranslators(PersistenceExceptionTranslationInterceptor.java:139)

at org.springframework.dao.support.PersistenceExceptionTranslationInterceptor.<init>(PersistenceExceptionTranslationInterceptor.java:79)

at org.springframework.dao.annotation.PersistenceExceptionTranslationAdvisor.<init>(PersistenceExceptionTranslationAdvisor.java:70)

at org.springframework.dao.annotation.PersistenceExceptionTranslationPostProcessor.setBeanFactory(PersistenceExceptionTranslationPostProcessor.java:99)

at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeAwareMethods(AbstractAutowireCapableBeanFactory.java:1422)

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

at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:513)

 30 more

Caused by: javax.persistence.PersistenceException: No Persistence provider for EntityManager named PinoquioWeb

at javax.persistence.Persistence.createEntityManagerFactory(Unknown Source)

at org.springframework.orm.jpa.LocalEntityManagerFactoryBean.createNativeEntityManagerFactory(LocalEntityManagerFactoryBean.java:92)

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

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

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

 45 more

22/05/2011 20:22:45 org.apache.catalina.core.StandardContext listenerStart

GRAVE: 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 persistence defined in ServletContext resource [/WEB-INF/springBeans.xml]: Initialization of bean failed; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name emf defined in ServletContext resource [/WEB-INF/springBeans.xml]: Invocation of init method failed; nested exception is javax.persistence.PersistenceException: No Persistence provider for EntityManager named PinoquioWeb

at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:521)

at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:450)

at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:290)

at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222)

at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:287)

at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:193)

at org.springframework.context.support.AbstractApplicationContext.registerBeanPostProcessors(AbstractApplicationContext.java:687)

at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:408)

at org.springframework.web.context.ContextLoader.createWebApplicationContext(ContextLoader.java:272)

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

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

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

at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5016)

at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:140)

at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:1035)

at org.apache.catalina.core.StandardHost.startInternal(StandardHost.java:738)

at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:140)

at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:1035)

at org.apache.catalina.core.StandardEngine.startInternal(StandardEngine.java:289)

at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:140)

at org.apache.catalina.core.StandardService.startInternal(StandardService.java:442)

at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:140)

at org.apache.catalina.core.StandardServer.startInternal(StandardServer.java:674)

at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:140)

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

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.catalina.startup.Bootstrap.start(Bootstrap.java:303)

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

Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name emf defined in ServletContext resource [/WEB-INF/springBeans.xml]: Invocation of init method failed; nested exception is javax.persistence.PersistenceException: No Persistence provider for EntityManager named PinoquioWeb

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

at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:513)

at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:450)

at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:290)

at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222)

at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:287)

at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:193)

at org.springframework.beans.factory.support.DefaultListableBeanFactory.getBeansOfType(DefaultListableBeanFactory.java:386)

at org.springframework.beans.factory.BeanFactoryUtils.beansOfTypeIncludingAncestors(BeanFactoryUtils.java:266)

at org.springframework.dao.support.PersistenceExceptionTranslationInterceptor.detectPersistenceExceptionTranslators(PersistenceExceptionTranslationInterceptor.java:139)

at org.springframework.dao.support.PersistenceExceptionTranslationInterceptor.<init>(PersistenceExceptionTranslationInterceptor.java:79)

at org.springframework.dao.annotation.PersistenceExceptionTranslationAdvisor.<init>(PersistenceExceptionTranslationAdvisor.java:70)

at org.springframework.dao.annotation.PersistenceExceptionTranslationPostProcessor.setBeanFactory(PersistenceExceptionTranslationPostProcessor.java:99)

at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeAwareMethods(AbstractAutowireCapableBeanFactory.java:1422)

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

at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:513)

 30 more

Caused by: javax.persistence.PersistenceException: No Persistence provider for EntityManager named PinoquioWeb

at javax.persistence.Persistence.createEntityManagerFactory(Unknown Source)

at org.springframework.orm.jpa.LocalEntityManagerFactoryBean.createNativeEntityManagerFactory(LocalEntityManagerFactoryBean.java:92)

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

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

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

 45 more

22/05/2011 20:22:45 org.apache.catalina.core.StandardContext startInternal

GRAVE: Error listenerStart</blockquote>

Segue aqui o applicationContext.xml

&lt;?xml version="1.0" encoding="UTF-8"?&gt;
&lt;beans xmlns="http://www.springframework.org/schema/beans"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xmlns:aop="http://www.springframework.org/schema/aop"
	xmlns:context="http://www.springframework.org/schema/context"
	xmlns:tx="http://www.springframework.org/schema/tx"
	xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
		http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd
		http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd
		http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.0.xsd"&gt;

	  &lt;context:annotation-config/&gt;
	  &lt;context:component-scan  base-package="com.br.pinoquio.dao"/&gt;  	  
	  &lt;context:component-scan  base-package="com.br.pinoquio.facade"/&gt;
	  	  
	  &lt;bean name="jpaVendorAdapter" class="org.springframework.orm.jpa.vendor.EclipseLinkJpaVendorAdapter"&gt;
		   &lt;property name="databasePlatform" value="org.eclipse.persistence.platform.database.MySQLPlatform" /&gt;
		   &lt;property name="showSql" value="true" /&gt;
	  &lt;/bean&gt;
	  
	 &lt;bean name="persistence" class="org.springframework.dao.annotation.PersistenceExceptionTranslationPostProcessor" /&gt;
	 
	  &lt;bean id="emf" class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean"&gt;
	  	 &lt;property name="persistenceUnitName" value="PinoquioWeb" /&gt;
	  	 &lt;property name="jpaVendorAdapter" ref="jpaVendorAdapter" /&gt;
	  &lt;/bean&gt;

	  &lt;bean id="txManager" class="org.springframework.orm.jpa.JpaTransactionManager"&gt;
	    &lt;property name="entityManagerFactory" ref="emf" /&gt;
	  &lt;/bean&gt;
	  
	  &lt;tx:annotation-driven transaction-manager="txManager" proxy-target-class="true" /&gt;
	   
	  &lt;!-- Chamar os Beans de Negocio --&gt;
	  	 
&lt;/beans&gt;

Segue o Persitence.xml

&lt;?xml version="1.0" encoding="UTF-8"?&gt;
&lt;persistence version="2.0"
	xmlns="http://java.sun.com/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd"&gt;
	&lt;persistence-unit name="PinoquioWeb" transaction-type="RESOURCE_LOCAL"&gt;
	&lt;provider&gt;org.eclipse.persistence.jpa.PersistenceProvider&lt;/provider&gt;
	&lt;class&gt;com.br.pinoquio.entity.Tbtipopagamento&lt;/class&gt;
	&lt;class&gt;com.br.pinoquio.entity.Tbrepresentante&lt;/class&gt;
	&lt;class&gt;com.br.pinoquio.entity.Tbordemservico&lt;/class&gt;
	&lt;class&gt;com.br.pinoquio.entity.Tbitemservico&lt;/class&gt;
	&lt;class&gt;com.br.pinoquio.entity.Tbfone&lt;/class&gt;
	&lt;class&gt;com.br.pinoquio.entity.Tbendereco&lt;/class&gt;
	&lt;class&gt;com.br.pinoquio.entity.Tbcliente&lt;/class&gt;
		&lt;properties&gt;
			&lt;property name="javax.persistence.jdbc.url" value="jdbc:mysql://localhost:3306/dbpinoquio"/&gt;
			&lt;property name="javax.persistence.jdbc.user" value="xxxxxxxxxxxxx"/&gt;
			&lt;property name="javax.persistence.jdbc.password" value="xxxxxxxxxxxxxxx"/&gt;
			&lt;property name="javax.persistence.jdbc.driver" value="com.mysql.jdbc.Driver"/&gt;
			&lt;property name="eclipselink.logging.level.query" value="ALL"/&gt;
		&lt;/properties&gt;

	&lt;/persistence-unit&gt;
&lt;/persistence&gt;

Pessoal essa aplicação será utilizada por várias máquinas ao mesmo tempo.
Agradeço desde já atenção de todos.

Obrigado

8 Respostas

edvaldo.santiago

Boa tarde Galera,
Ninguém passou por esse problema antes?

Valeu :oops:

R

Caro Edvaldo boa tarde

Meu prezado não posso resolver o seu problema, mais em comum temos apenas as mesmas tecnologias
eu também estou estudando um projeto com JSF 2. Spring 3 JPA usando o Tomcat e sem o Spring MVC.

o meu problema é que eu não consigo sair do canto há uns 3 meses.
o meu maior problema é que estou tentando iniciar em Java e no momento não estou podendo fazer um
curso orientado direto para o que eu quero ( fazer um curso llllllá do começo pra mim não é jogo )
Entao meu caro tô apanhando feio, se eu vou obter alguma ajuda na pagina do Spring sempre falta algo,
nunca tem algo que começe e termine e lá não tem algo que mostre a coisa funcional com o JSF.
o inicio fazer as classes de entidades, os arquivos de configuracao … tudo isto é blz eu até consegui
testar o JPA ta conectando ok, mais me perco dai pra frente qdo tem que fazer as classes de interface
e implementacao de persistencia, a classe de controller ai a coisa desanda.

Bem te ajudar eu realmente não posso me falta o conhecimento.
mais espero que vc possa resolver o seu problema.

Um Abraço.

R
Criou o persistence.xml ?

Criou o persistence.xml ?

edvaldo.santiago

Sim Rafael,
Está no exemplo que passei.

edvaldo.santiago

Boa noite Galera do Guj…
Ainda estou precisando de uma força com assunto em questão…

Valeu.

J

E ae cara? Beleza?

Escuta, aonde está o teu persistence.xml? Tem que criar a pasta META-INF dentro do seu diretório src. E dentro dessa pasta, joga o arquivo persistence.xml

Quando for assim, pega o erro que tá dando, e procura no google, você vai ver que tem vários tópicos assim. Mais fácil do que esperar a resposta aqui né?

Caso isso não funcione, procura por esse erro no google e se resolver, posta a solução aqui

Espero ter ajudado

Abraço

lm.moreira

Opa estou tendo problema com o mesmo ambiente

Mas ele reclama do weaver do spring

Como você lidou com isto?

Colocou no entitymanager

bobboyms

Acho que pode te ajudar http://code.google.com/p/jpa-component/wiki/Doc_PT_Br

Criado 22 de maio de 2011
Ultima resposta 8 de out. de 2011
Respostas 8
Participantes 6