Problemas com jpa ao criar o entityManagerFactory

9 respostas
arcZendSun

boa noite a todos

bom estou estudando em casa e resolvi estudar um pouco de JPA e vRaptor porem estou tendo um problema ao tentar criar o entityManagerFactory no console aparece a seguinte menssagem:

log4j:WARN No appenders could be found for logger (org.jboss.logging).

log4j:WARN Please initialize the log4j system properly.

log4j:WARN See <a href="http://logging.apache.org/log4j/1.2/faq.html#noconfig">http://logging.apache.org/log4j/1.2/faq.html#noconfig</a> for more info.

Exception in thread “main” javax.persistence.PersistenceException: No Persistence provider for EntityManager named jpa_vraptor

at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:69)

at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:47)

at model.teste.main(teste.java:15)

ja tentei varios processos, não sei o que pode estar dando errado, segue abaxo o xml de configuração, o metodo main e o projeto q coloquei no 4shared(o projeto esta muito pequeno, não tem praticamente nada ainda)

xml:

<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_2_0.xsd"
	version="2.0">

	<persistence-unit name="jpa_vraptor">
		<provider>org.hibernate.ejb.HibernatePersistence</provider>
		<class>model.Conta</class>
		<class>model.Banco</class>
		<class>model.Cliente</class>
		
		<properties>			
			<property name="hibernate.dialect" value="org.hibernate.dialect.MySQLInnoDBDialect"/>
			<!-- poderia ser: create,create-drop -->
			<property name="hibernate.hbm2ddl.auto" value="update"/>
			<property name="hibernate.show_sql" value="true"/>
			<property name="hibernate.format_sql" value="true"/>
			
			<property name="javax.persistence.jdbc.driver" value="com.mysql.jdbc.Driver"/>
			<property name="javax.persistence.jdbc.url" value="jdbc:mysql://localhost/jpa_vraptor"/>
			<property name="javax.persistence.jdbc.user" value="root"/>
			<property name="javax.persistence.jdbc.password" value="arc"/>
		</properties>
	</persistence-unit>
	
</persistence>

metodo main

public static void main(String[] args) {
		Banco b = new Banco();
		b.setNome("bradesco");
		b.setNumero("09987");
		
		EntityManagerFactory fac = Persistence.createEntityManagerFactory("jpa_vraptor");
		EntityManager em = fac.createEntityManager();
		
		em.getTransaction().begin();
		em.persist(b);
		em.getTransaction().commit();
	}

http://www.4shared.com/zip/WSf1fSrW/HIBERNATE_JPA.html

9 Respostas

Trebloc

log4j:WARN No appenders could be found for logger (org.jboss.logging). log4j:WARN Please initialize the log4j system properly. log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info.

Quanto a esses avisos, eles são gerados porque você não deve ter um arquivo de configuração do log4j no seu classpath (log4j.properties). Aqui ensina como configurá-lo: http://hotwork.sourceforge.net/hotwork/manual/log4j/log4j-user-guide.html

arcZendSun

vou tentar + é estranho, na apostila da caelumn não fala nada sobre ele

Trebloc

Você está usando o JBoss como servidor, não é? Vendo direito o aviso, ele fala que não encontrou um appender para o logger org.jboss.logging. Nesse caso, você teria que configurar o log4j no JBoss, não na sua aplicação. Veja se te ajuda: http://www.guj.com.br/java/102412-configurar-arquivo-jboss-log4jxml-para-nao-gerar-degub-no-serverlog

Quanto ao seu problema, como a exceção diz que não encontrou um “Persistence provider”, talvez ele não esteja encontrando o Hibernate. O jar que tem a classe org.hibernate.ejb.HibernatePersistence está no seu classpath?

arcZendSun

não eu to usando o tomcat.

fiz o que vc falou e deu no mesmo só q exibiu essa msg tb:

22:07:54  INFO [Version             ] Hibernate Commons Annotations 3.2.0.Final

22:07:54  INFO [Environment         ] Hibernate 3.6.0.Final

22:07:54  INFO [Environment         ] hibernate.properties not found

22:07:54  INFO [Environment         ] Bytecode provider name : javassist

22:07:54  INFO [Environment         ] using JDK 1.4 java.sql.Timestamp handling

22:07:55  INFO [Version             ] Hibernate EntityManager 3.6.0.Final

22:07:55  INFO [Ejb3Configuration   ] Could not find any META-INF/persistence.xml file in the classpath

Exception in thread main javax.persistence.PersistenceException: No Persistence provider for EntityManager named jpa_vraptor

at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:54)

at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:32)

at model.teste.main(teste.java:21)

o que é muito estranho pq na apostila nada fala sobre esse arquivo hibernate.properties (pelo menos não no começo dela), fala apenas do persistence.xml

o mais estranho é essa parte da menssagem: “22:07:55 INFO [Ejb3Configuration ] Could not find any META-INF/persistence.xml file in the classpath”

pq o arquivo esta dentro do meta-inf, pode verificar no link de q postei do projeto

augusto_ab

Dê uma olhada se o " ejb3-persistence.jar " está em seu classpath.

Não sei se é um erro de render da minha tela aqui, mas parece que no XML o nome da sua persistence-unit está sem " _ " -> jpa vraptor. E na criação de seu EntityManagerFactory você procura por “jpa_vraptor”.

arcZendSun

cara é so impressão “” realmente tem o “_”

cara não tem essa jar, porem eu fui no site e baixei o framework de novo e não veio esse jar q vc falou, ele faz parte do hibernate?

_

[i]Onde se encontra o seu arquivo persistence.xml ?

Lembrando que o mesmo deve estar dentro da pasta META-INF na pasta dos fontes da sua aplicacao (src).

Verifique se você não colocou o persistence.xml dentro da pasta WebContent/META-INF/ se assim o fez, mova o persistence.xml para a pasta src/META-INF

Se a pasta META-INF não existir na pasta src, pode criar sem problemas.

Abraço![/i]

arcZendSun

caraca noobada master agora

foi exatamente isso

vlw kra desculpe a noobada

_

Que é isso cara! Agora não tem mais erro! Abraço!

Criado 22 de fevereiro de 2012
Ultima resposta 22 de fev. de 2012
Respostas 9
Participantes 4