Bem, como os topicos que eu vi sobre esse assunto nao responderam minha pergunta … por sinal teve um topico que o cara estava com o problema exatamente igual ao meu (topico de 2007), mas ele na obteve resposta, resolvi criar esse topico
vou ate quotar o texto desse cara que estava com o mesmo problema que eu:
[quote] Pessoal vcs ja usaram JPA do tipo JTA sem ser por injeção de dependecia, tipo:
EntityManagerFactory factory = Persistence.createEntityManagerFactory(“compra_obras_pu”);
e a patir do factory pegar o Entityanager
da erro dizendo que nao tem provider para a persistence:
Caused by: javax.persistence.PersistenceException: No Persistence provider for EntityManager named compra_obras_pu: The following providers:
oracle.toplink.essentials.PersistenceProvider
oracle.toplink.essentials.ejb.cmp3.EntityManagerFactoryProvider
Returned null to createEntityManagerFactory. [/quote]
aqui vai o erro
log do erro
[code]HTTP Status 500 -
type Exception report
message
description The server encountered an internal error () that prevented it from fulfilling this request.
exception
javax.servlet.ServletException: Unable to instantiate Action, br.gov.ce.seplag.pdtiweb.actions.ActAplicacao, defined for ‘prepararConsultar’ in namespace '/aplicacao’No Persistence provider for EntityManager named pdtiweb - action - file:/C:/Projetos/pdtiweb/FONTES/pdtiweb/build/web/WEB-INF/classes/config/struts-aplicacao.xml:27:31
org.apache.struts2.dispatcher.Dispatcher.serviceAction(Dispatcher.java:518)
org.apache.struts2.dispatcher.FilterDispatcher.doFilter(FilterDispatcher.java:421)
root cause
Unable to instantiate Action, br.gov.ce.seplag.pdtiweb.actions.ActAplicacao, defined for ‘prepararConsultar’ in namespace '/aplicacao’No Persistence provider for EntityManager named pdtiweb - action - file:/C:/Projetos/pdtiweb/FONTES/pdtiweb/build/web/WEB-INF/classes/config/struts-aplicacao.xml:27:31
com.opensymphony.xwork2.DefaultActionInvocation.createAction(DefaultActionInvocation.java:289)
com.opensymphony.xwork2.DefaultActionInvocation.init(DefaultActionInvocation.java:360)
com.opensymphony.xwork2.DefaultActionInvocation.access$000(DefaultActionInvocation.java:38)
com.opensymphony.xwork2.DefaultActionInvocation$1.doProfiling(DefaultActionInvocation.java:78)
com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:455)
com.opensymphony.xwork2.DefaultActionInvocation.(DefaultActionInvocation.java:70)
com.opensymphony.xwork2.DefaultActionInvocation.(DefaultActionInvocation.java:66)
com.opensymphony.xwork2.DefaultActionProxy.prepare(DefaultActionProxy.java:189)
org.apache.struts2.impl.StrutsActionProxyFactory.createActionProxy(StrutsActionProxyFactory.java:41)
org.apache.struts2.dispatcher.Dispatcher.serviceAction(Dispatcher.java:497)
org.apache.struts2.dispatcher.FilterDispatcher.doFilter(FilterDispatcher.java:421)
root cause
javax.persistence.PersistenceException: No Persistence provider for EntityManager named pdtiweb
javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:56)
javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:34)
br.gov.ce.seplag.pdtiweb.persistence.PrsPadraoBean.initialize(PrsPadraoBean.java:45)
br.gov.ce.seplag.pdtiweb.persistence.PrsPadraoBean.(PrsPadraoBean.java:73)
br.gov.ce.seplag.pdtiweb.persistence.PrsDaoBean.(PrsDaoBean.java:32)
br.gov.ce.seplag.pdtiweb.business.generic.BusinessGeneric.(BusinessGeneric.java:22)
br.gov.ce.seplag.pdtiweb.business.generic.BusinessBean.(BusinessBean.java:9)
br.gov.ce.seplag.pdtiweb.business.NgcAplicacaoBean.(NgcAplicacaoBean.java:10)
br.gov.ce.seplag.pdtiweb.business.BusinessFactory.getNgcAplicacao(BusinessFactory.java:189)
br.gov.ce.seplag.pdtiweb.actions.ActAplicacao.(ActAplicacao.java:60)
sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
java.lang.reflect.Constructor.newInstance(Constructor.java:513)
java.lang.Class.newInstance0(Class.java:355)
java.lang.Class.newInstance(Class.java:308)
com.opensymphony.xwork2.ObjectFactory.buildBean(ObjectFactory.java:121)
com.opensymphony.xwork2.ObjectFactory.buildBean(ObjectFactory.java:152)
com.opensymphony.xwork2.ObjectFactory.buildBean(ObjectFactory.java:141)
com.opensymphony.xwork2.ObjectFactory.buildAction(ObjectFactory.java:111)
com.opensymphony.xwork2.DefaultActionInvocation.createAction(DefaultActionInvocation.java:270)
com.opensymphony.xwork2.DefaultActionInvocation.init(DefaultActionInvocation.java:360)
com.opensymphony.xwork2.DefaultActionInvocation.access$000(DefaultActionInvocation.java:38)
com.opensymphony.xwork2.DefaultActionInvocation$1.doProfiling(DefaultActionInvocation.java:78)
com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:455)
com.opensymphony.xwork2.DefaultActionInvocation.(DefaultActionInvocation.java:70)
com.opensymphony.xwork2.DefaultActionInvocation.(DefaultActionInvocation.java:66)
com.opensymphony.xwork2.DefaultActionProxy.prepare(DefaultActionProxy.java:189)
org.apache.struts2.impl.StrutsActionProxyFactory.createActionProxy(StrutsActionProxyFactory.java:41)
org.apache.struts2.dispatcher.Dispatcher.serviceAction(Dispatcher.java:497)
org.apache.struts2.dispatcher.FilterDispatcher.doFilter(FilterDispatcher.java:421)
note The full stack trace of the root cause is available in the Apache Tomcat/6.0.16 logs.
Apache Tomcat/6.0.16[/code]
e o trecho do codigo que esta dando erro
PrsPadraoBean.java
[code]public abstract class PrsPadraoBean {
private Class<?> classEntidade = null;
//Gerenciador de fábrica de entidades.
private EntityManagerFactory factory = null;
//Entidade responsável pela persistência.
private EntityManager manager = null;
//Referência do persistence.xml.
private static final String PERSISTENCE_NAME = "pdtiweb";
private String causaErro = "";
/**
* Inicialização da classe de persistência.
*
* @author Aldivone Correia[aldivone@gmail.com] - $12/05/2007:23:19:57$
*
*/
private void initialize() {
if (this.factory == null) {
this.factory = Persistence.createEntityManagerFactory(PERSISTENCE_NAME);
}
if (this.manager == null) {
this.manager = this.factory.createEntityManager();
}
}[/code]
para completar