Problemas com JPA no JBoss

3 respostas
the2vicious

Olá a todos, estou desenvolvendo uma aplicação web utilizando JSF 1.2, JPA com EclipseLink e JBoss 5.1. Aqui no meu ambiente de testes, o deploy da aplicação ocorre perfeitamente, porém ao instanciar minha EntityManagerFactory, o JBoss retorna os seguintes erros:

javax.faces.el.EvaluationException: Exception [EclipseLink-30005] (Eclipse Persistence Services - 2.1.0.v20100614-r7608): org.eclipse.persistence.exceptions.PersistenceUnitLoadingException
Exception Description: An exception was thrown while searching for persistence archives with ClassLoader: org.jboss.web.tomcat.service.WebCtxLoader$ENCLoader@9b060b
Internal Exception: Exception [EclipseLink-30009] (Eclipse Persistence Services - 2.1.0.v20100614-r7608): org.eclipse.persistence.exceptions.PersistenceUnitLoadingException
Exception Description: An exception was thrown while trying to load persistence unit at url: vfszip:/C:/jboss-5.1.0.GA/server/default/deploy/cadususiges.war/WEB-INF/classes/
Internal Exception: Exception [EclipseLink-30004] (Eclipse Persistence Services - 2.1.0.v20100614-r7608): org.eclipse.persistence.exceptions.PersistenceUnitLoadingException
Exception Description: An exception was thrown while processing persistence.xml from URL: vfszip:/C:/jboss-5.1.0.GA/server/default/deploy/cadususiges.war/WEB-INF/classes/

Sou iniciante ainda com estas tecnologias e acredito que esteja precisando configurar algum detalhe no JBoss ou no projeto para que seja possível carregar o persistence.xml corretamente.

Código do meu persistence.xml:

<?xml version="1.0" encoding="UTF-8"?>
<persistence 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_1_0.xsd"
             version="1.0">
			  
	<persistence-unit name="factorySigesJPA" transaction-type="RESOURCE_LOCAL" >
	
		<provider>org.eclipse.persistence.jpa.PersistenceProvider</provider>
		
		<!-- 
		Data source é um recurso do servidor de aplicação que controla o 
		acesso ao banco de dados. O Data source pode (e deve) gerenciar também 
		o "pool de conexôes* com o banco. DataSource não é um diretório, é um 
		código (no nosso caso em Java) parametrizável que controla as conexões 
		e o acesso ao banco de dados.
		-->
		<non-jta-data-source>java:/OracleDS</non-jta-data-source>
 
		<class>br.sp.gov.santos.cadususiges.entity.Cor</class>
		<class>br.sp.gov.santos.cadususiges.entity.Municipio</class>
		<class>br.sp.gov.santos.cadususiges.entity.UnidadeFederativa</class>
		<class>br.sp.gov.santos.cadususiges.entity.Pessoa</class>
		<class>br.sp.gov.santos.cadususiges.entity.Endereco</class>
		<class>br.sp.gov.santos.cadususiges.entity.EstadoCivil</class>
		<class>br.sp.gov.santos.cadususiges.entity.Nacionalidade</class>
		<class>br.sp.gov.santos.cadususiges.entity.DadoCivil</class>
		<class>br.sp.gov.santos.cadususiges.entity.TipoServico</class>
		<class>br.sp.gov.santos.cadususiges.entity.Filiacao</class>
		<class>br.sp.gov.santos.cadususiges.entity.Setor</class>
		<class>br.sp.gov.santos.cadususiges.entity.Usuario</class>
		<class>br.sp.gov.santos.cadususiges.entity.Setor</class>
		<class>br.sp.gov.santos.cadususiges.entity.Perfil</class>
		<class>br.sp.gov.santos.cadususiges.entity.Logradouro</class>
		<class>br.sp.gov.santos.cadususiges.entity.Bairro</class>
		<class>br.sp.gov.santos.cadususiges.entity.EnderecoForaDeSantos</class>
		<class>br.sp.gov.santos.cadususiges.entity.Usuario</class>
		<class>br.sp.gov.santos.cadususiges.entity.Perfil</class>
		<class>br.sp.gov.santos.cadususiges.entity.PerfilGrupoAcesso</class>
		<class>br.sp.gov.santos.cadususiges.entity.GrupoAcesso</class>
		<class>br.sp.gov.santos.cadususiges.entity.Zoneamento</class>
		<class>br.sp.gov.santos.cadususiges.entity.TipoUnidade</class>
		<class>br.sp.gov.santos.cadususiges.entity.TituloUnidade</class>
		<class>br.sp.gov.santos.cadususiges.entity.Unidade</class>
		<class>br.sp.gov.santos.cadususiges.entity.GrupoAcessoUnidade</class>
		<class>br.sp.gov.santos.cadususiges.entity.TipoServico</class>
		<class>br.sp.gov.santos.cadususiges.entity.Servico</class>
		<class>br.sp.gov.santos.cadususiges.entity.PerfilServico</class>
		
		<exclude-unlisted-classes>true</exclude-unlisted-classes>
		
		<properties>		 
					 	
		 	<property name="eclipselink.target-server" value="JBoss" />
			<property name="eclipselink.weaving" value="false" />
			<property name="eclipselink.session-name" value="default-session" />
			<property name="eclipselink.logging.level" value="ALL" /><!-- como DEBUG -->
			<property name="eclipselink.cache.size.default" value="500" />
			<property name="eclipselink.cache.type.default" value="None" />
			<property name="eclipselink.cache.shared.default" value="false" />
			<property name="eclipselink.jdbc.exclusive-connection.mode" value="Always" />		 	
			
		</properties>
	</persistence-unit>
</persistence>

3 Respostas

partenon

Soh de curiosidade, se voce remover o EclipseLink e usar o Hibernate (que ja vem com o JBoss AS), voce tem algum erro?

mynameisflaw

Olá,

Faça um teste isolando seu classloader.
Publique sua aplicação em um pacote EAR, com o arquivo ear-deployer.xml.
Neste arquivo defina o atributo:
true

abraços

the2vicious

Não da erro com Hibernate, porém precisei trocar o Hibernate pelo EclipseLink para utilizar os métodos de Proxy Authentication.

Criado 1 de julho de 2010
Ultima resposta 1 de jul. de 2010
Respostas 3
Participantes 3