Eclipse Juno + Hibernate + JPA

Olá pessoa…
sou o mais novo membro da família… :roll: alias, com muito orgulho.

Bom, estou tentando criar um exemplo de hibernate com JPA…
porém, nao consigo fazer rodar pelo mais basico que seja.

[color=red][size=18]Acontece o seguinte erro:[/size][/color]

xception in thread "main" java.lang.ExceptionInInitializerError at org.hibernate.cfg.Configuration.reset(Configuration.java:299) at org.hibernate.cfg.Configuration.<init>(Configuration.java:265) at org.hibernate.cfg.Configuration.<init>(Configuration.java:269) at org.hibernate.ejb.Ejb3Configuration.<clinit>(Ejb3Configuration.java:151) at org.hibernate.ejb.HibernatePersistence.createEntityManagerFactory(HibernatePersistence.java:55) at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:63) at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:47) at model.Main.main(Main.java:13) Caused by: java.lang.NullPointerException at org.hibernate.internal.util.ConfigHelper.getResourceAsStream(ConfigHelper.java:170) at org.hibernate.cfg.Environment.<clinit>(Environment.java:221) ... 8 more

Nao encontrei o problema em nenhum lugar.
Parece que o erro avisa falta do arquivo org.hibernate.cfg.Configuration
Porem, pelo que sei… usando JPA precisa-se apenas o arquivo persistence.xml na pasta src/META-INF/

[size=18]Persistence.xml [/size] - Vejam como ficou o Persistence.xml

<?xml version="1.0" encoding="UTF-8"?>
<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">
	<persistence-unit name="projetoJPA" transaction-type="RESOURCE_LOCAL">
	<provider>org.hibernate.ejb.HibernatePersistence</provider>
		<class>model.Pessoa</class>
		<properties>
			<property name="hibernate.dialect" value="org.hibernate.dialect.MySQLInnoDBDialect"/>
			<property name="hibernate.connection.show_sql" value="true" />
			<property name="hibernate.hbm2ddl.auto" value="update" />
			<property name="hibernate.connection.driver_class" value="com.mysql.jdbc.Driver "/>
			   <property name="hibernate.connection.username" value="root" />
			   <property name="hibernate.connection.password" value="" />
			<property name="hibernate.connection.url" value="jdbc:mysql://localhost:3306/sistema"/>
		</properties>
	</persistence-unit>
</persistence>

[size=18]e agora minha CLASS[/size]

package model;

import java.io.Serializable;
import javax.persistence.*;


/**
 * The persistent class for the pessoa database table.
 * 
 */
@Entity
@Table(name="pessoa")
public class Pessoa implements Serializable {
	private static final long serialVersionUID = 1L;

	@Id
	@GeneratedValue(strategy=GenerationType.IDENTITY)
	@Column(unique=true, nullable=false)
	private int codigo;

	@Column(length=100)
	private String email;

	@Column(nullable=false, length=100)
	private String nome;

	public Pessoa() {
	}

	public int getCodigo() {
		return this.codigo;
	}

	public void setCodigo(int codigo) {
		this.codigo = codigo;
	}

	public String getEmail() {
		return this.email;
	}

	public void setEmail(String email) {
		this.email = email;
	}

	public String getNome() {
		return this.nome;
	}

	public void setNome(String nome) {
		this.nome = nome;
	}

}

[size=18]CLASS MAIN para teste[/size]

package model;
 
import javax.persistence.EntityManager;
import javax.persistence.EntityManagerFactory;
import javax.persistence.Persistence;
 
public class Main {
 
    /**
     * @param args
     */
    public static void main(String[] args) {
        EntityManagerFactory emf = Persistence.createEntityManagerFactory("projetoJPA");
        EntityManager em = emf.createEntityManager();
 
        try {
            em.getTransaction().begin();
             
            Pessoa user = em.find(Pessoa.class, 1);
             
            System.out.println(user.getNome());
             
            em.getTransaction().commit();
        }
        catch (Exception e) {
            em.getTransaction().rollback();
            e.printStackTrace();
        }
        finally{
            emf.close();
        }
         
    
    }
}

Para tirar dúvidas quanto ao que estou usando, segue uma imagem bem completa do eclipse

[size=18]será que alguem pode me ajudar? [/size] :thumbup:

aqui tem um exemplo http://blog.camilolopes.com.br/jpa-com-hibernate-jsf-mysql/ só ignore a parte de JSF.

flw.

[quote=LPJava]aqui tem um exemplo http://blog.camilolopes.com.br/jpa-com-hibernate-jsf-mysql/ só ignore a parte de JSF.

flw. [/quote]

e ai LPJava… valew…
Mas ja tinha até visto esse blog do camilo… e o que apresenta no blog é igual que estou fazendo.

Alias… os arquivos persistence.xml e a classe pessoa eu gerei direto pelo JBOSS TOOLS… ou seja, tudo no lugar certinho.

Tu chegou ver meu codigo? nao encontrou nada errado?
Pode ser um detalhe, que nao encontro de jeito algum

se alguem poder ajudar, agradeço… obrigado!!

Fala garoto!!!
configure seu persistence.xml para o modelo abaixo.

<?xml version="1.0" encoding="UTF-8"?>
<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">

	<persistence-unit name="projetoJPA" transaction-type ="RESOURCE_LOCAL">
		<provider>org.hibernate.ejb.HibernatePersistence</provider>
		<class>model.Pessoa</class>  
		<properties>
			<property name="hibernate.dialect" value="org.hibernate.dialect.MySQLDialect" />
			<property name="hibernate.hbm2ddl.auto" value="update"/>
			<property name="hibernate.show_sql" value="true"/>
			
            <property name="javax.persistence.jdbc.driver" value="com.mysql.jdbc.Driver"/>
			<property name="javax.persistence.jdbc.url" value="jdbc:mysql://localhost:3306/sistema"/>
			<property name="javax.persistence.jdbc.user" value="root"/>
			<property name="javax.persistence.jdbc.password" value=""/>
		</properties>
	</persistence-unit>
</persistence>

[quote=aprendizweb]Fala garoto!!!
configure seu persistence.xml para o modelo abaixo.

<?xml version="1.0" encoding="UTF-8"?>
<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">

	<persistence-unit name="projetoJPA" transaction-type ="RESOURCE_LOCAL">
		<provider>org.hibernate.ejb.HibernatePersistence</provider>
		<class>model.Pessoa</class>  
		<properties>
			<property name="hibernate.dialect" value="org.hibernate.dialect.MySQLDialect" />
			<property name="hibernate.hbm2ddl.auto" value="update"/>
			<property name="hibernate.show_sql" value="true"/>
			
            <property name="javax.persistence.jdbc.driver" value="com.mysql.jdbc.Driver"/>
			<property name="javax.persistence.jdbc.url" value="jdbc:mysql://localhost:3306/sistema"/>
			<property name="javax.persistence.jdbc.user" value="root"/>
			<property name="javax.persistence.jdbc.password" value=""/>
		</properties>
	</persistence-unit>
</persistence>

[/quote]

opa, valew aprendizweb… mas infelizmente nao funcionou.
mas uma coisa que notei, foi que o arquivo persistence.xml nao esta sendo lido… nao faz diferença se ele tiver alguma coisa ou se estiver em branco.
pois eu apaguei todo o arquivo persistence.xml e executei o main e ocorreu o mesmo erro.

o que pode ser será?

talvez pode ser biblioteca faltando, baixe e adicione e ver o que acontece.

jta-1.1.jar
hibernate3.jar
slf4j-api-1.6.1.jar
commons-collections-3.1.jar

[quote=aprendizweb]talvez pode ser biblioteca faltando, pelo que notei falta a hibernate3.jar, baixe e adicione e ver o que acontece.
[/quote]

e ai amigao…
bah, ate isso ja tinha testado…acredite!!

finalmente depois de pesquisar umas 19239x no google… encontrei aqui no proprio forum GUJ a resposta…

segue o link
http://www.guj.com.br/java/225322-resolvido---problema-jpa-persistencexml

ou seja…
lá no Build Path do projeto eu estava criando library para o hibernate … foi só excluir e incluir direto no projeto (solto)… que funcionou na hora!!

[size=18]agora, minha duvida é… porque isso?[/size]
nao posso criar uma library para o hibernate ? o library nao seria para agrupar as lib`s ?

Acredito que pode ser o poblema da padronização, pois por padrãoo as bibliotecas devem ser adicionadas nas basta lib que esta dentro de WebContent–>META-INF, assim como o arquivo persistence.xml deve estar dentro de src–>META-INF, se não ele não é encontrado, são coisas pequenas que nós tomam muito tempo, mais que são muitos necessárias. Isso no Eclipse, já no Netbeans pode haver algumas diferenças.

maiconjusto Cara, muito obrigado, fazia no minimo umas 8 horas que eu estava atras dessa resposta, valeu mesmo!