E ae,galera!
Beleza?
To com um problema aqui,talvez alguem possa me dar uma luz.
Construí um webservice utilizando o fw Jersey,são feitas requisições ao banco a partir de um sistema que está instalado em um tablet.
Tablet >>>(requisição)>>> WebService >>>> BD
feito isso,o fluxo segue da seguinte maneira:
BD >>> WebService >>>(xml)>>> Tablet
Estava fazendo uns testes,mandando 1 requisição a cada dez segundos,e ele funciona,mas depois de alguns minutos,gera a exception:
javax.persistence.PersistenceException: [PersistenceUnit: persistenceUnit] Unable to build EntityManagerFactory
at org.hibernate.ejb.Ejb3Configuration.buildEntityManagerFactory(Ejb3Configuration.java:677)
at org.hibernate.ejb.HibernatePersistence.createEntityManagerFactory(HibernatePersistence.java:126)
at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:63)
at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:47)
....
Segue a minha factory para injetar o EntityManager no contexto:
[code]public class EmFactory {
public EntityManagerFactory getFactory() throws Exception {
EntityManagerFactory entityManagerFactory;
entityManagerFactory = Persistence.createEntityManagerFactory( "persistenceUnit" );
return entityManagerFactory;
}
}[/code]
A classe DAO,que faz as operações:
[code]public class OrdemServicoDao {
EmFactory emFactory;
EntityManager em;
public OrdemServicoDao(){
if (emFactory==null){
emFactory = new EmFactory();
}
if (em==null){
try {
em = emFactory.getFactory().createEntityManager();
} catch (Exception e) {
e.printStackTrace();
}
}
}
public List<OrdemServico> buscarPorTecnico(Integer codTec) throws ParseException{
List<OrdemServico> listaOs = null;
try {
//código do método,executa várias querys buscando objetos do banco,sem alterar e inserir.
} catch (Exception e) {
e.printStackTrace();
} finally {
if (em.isOpen()) {
em.close();
}
}
return listaOs;
}
[/code]
E aqui segue a servlet do jersey que recebe e processa a requisição:
[code]@Path("/chamados")
public class ChamadoResource {
GeradorChamados gc;
public ChamadoResource(){
if (this.gc==null){
this.gc = new GeradorChamados();
}
}
@GET
@Produces(“text/xml”)
@Path("/{idTec}")
public List getChamados(@PathParam(“idTec”) Integer idTec) throws ParseException {
OrdemServicoDao dao = new OrdemServicoDao();
List<OrdemServico> listaOrdemServico = new ArrayList<OrdemServico>();
List<Chamado> listaChamado = new ArrayList<Chamado>();
listaOrdemServico = dao.buscarPorTecnico(idTec);
listaChamado = this.gc.geraListaChamados(listaOrdemServico);
return listaChamado;
}
}[/code]
Chega um momento em que o webservice não consegue injetar o EntityManager,gerando aquela exception,alguem pode me ajudar?