Ola pessoal estou fazendo uns tes com jpa abaixo meu cod.
package br.com.exemplojpa.modelo;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.Table;
/**
*
* @author Rafael Carneiro [rafael@portaljava.com]
* @since 20/05/2007
*
* http://rafael-carneiro.blogspot.com
*
*/
@Entity
@Table(name = "Usuario")
public class Usuario {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Integer id;
@Column
private String login;
@Column
private String password;
@Column
private String nome;
/*
* Gets e Sets
*/
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getLogin() {
return login;
}
public void setLogin(String login) {
this.login = login;
}
public String getNome() {
return nome;
}
public void setNome(String nome) {
this.nome = nome;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
}
package br.com.exemplojpa.negocio;
import br.com.exemplojpa.modelo.Usuario;
import br.com.exemplojpa.persistencia.UsuarioDAO;
/**
*
* @author Rafael Carneiro [rafael@portaljava.com]
* @since 20/05/2007
*
* http://rafael-carneiro.blogspot.com
*
*/
public class UsuarioBusiness {
UsuarioDAO usuarioDAO = null;
/**
* Inserir usurio
*/
public void inserirUsuario(Usuario usuario) {
usuarioDAO = new UsuarioDAO();
usuarioDAO.inserirUsuario(usuario);
}
/**
* Pesquisar usurio
*/
public Usuario pesquisarUsuario(Usuario usuario) {
usuarioDAO = new UsuarioDAO();
Usuario retorno = new Usuario();
retorno = usuarioDAO.pesquisarUsuario(usuario.getId(), usuario);
return retorno;
}
}
package br.com.exemplojpa.persistencia;
import javax.persistence.EntityManager;
import javax.persistence.EntityManagerFactory;
import javax.persistence.EntityTransaction;
import javax.persistence.Persistence;
import br.com.exemplojpa.modelo.Usuario;
/**
*
* @author Rafael Carneiro [rafael@portaljava.com]
* @since 20/05/2007
*
* http://rafael-carneiro.blogspot.com
*
*/
public class UsuarioDAO {
private EntityManagerFactory factory = null;
private EntityManager manager = null;
public UsuarioDAO() {
factory = Persistence.createEntityManagerFactory("exemploJPA");
manager = factory.createEntityManager();
}
/**
* Inserindo um usurio
*
* @param usuario
*/
public void inserirUsuario(Usuario usuario) {
EntityTransaction transaction = manager.getTransaction();
try {
transaction.begin();
manager.persist(usuario);
transaction.commit();
} catch (Exception e) {
transaction.rollback();
System.err.println("Erro: " + e.getMessage());
} finally {
manager.close();
}
}
/**
* Pesquisar um usurio
*
* @param usuario
*/
public Usuario pesquisarUsuario(Integer id, Usuario usuario) {
EntityTransaction transaction = manager.getTransaction();
Usuario retorno = null;
try {
transaction.begin();
retorno = (Usuario) manager.find(Usuario.class, id);
} catch (Exception e) {
transaction.rollback();
System.err.println("Erro: " + e.getMessage());
} finally {
manager.close();
}
return retorno;
}
}
package br.com.exemplojpa.teste;
import br.com.exemplojpa.modelo.Usuario;
import br.com.exemplojpa.negocio.UsuarioBusiness;
/**
*
* @author Rafael Carneiro [rafael@portaljava.com]
* @since 20/05/2007
*
* http://rafael-carneiro.blogspot.com
*
*/
public class TesteExemploJPA {
public void teste() {
System.out.println("Teste p1");
/*
* Criando o objeto usurio
*/
Usuario usuario = new Usuario();
usuario.setLogin("rafael");
usuario.setPassword("123456");
usuario.setNome("Rafael Carneiro");
/*
* Instanciando a classe de negcio
*/
UsuarioBusiness usuarioBusiness = new UsuarioBusiness();
/*
* Inserindo um usurio no banco
*/
usuarioBusiness.inserirUsuario(usuario);
/*
* Pesquisando o usurio inserido no banco
*/
Usuario usuarioBanco = new Usuario();
usuarioBanco = usuarioBusiness.pesquisarUsuario(usuario);
/*
* Mostrando o resultado da consulta no banco
*/
System.out.println();
System.out.println(" Exemplo JPA ");
System.out.println("Id: " + usuarioBanco.getId());
System.out.println("Login: " + usuarioBanco.getLogin());
System.out.println("Senha: " + usuarioBanco.getPassword());
System.out.println("Nome: " + usuarioBanco.getNome());
}
}
//package servlets;
import java.io.*;
import java.util.*;
import javax.servlet.*;
import javax.servlet.http.*;
public class ServTeste extends HttpServlet {
int operacao;
public void doPost(HttpServletRequest request,HttpServletResponse response)
throws IOException, ServletException{
doGet(request,response);
}
public void doGet(HttpServletRequest request,HttpServletResponse response)
throws IOException, ServletException{
// Instanciando objetos
br.com.exemplojpa.teste.TesteExemploJPA testeExemploJPA = new
br.com.exemplojpa.teste.TesteExemploJPA();
// Recebendo dados
if(request.getParameter("operacao")!=null && !request.getParameter("operacao").equals("")){
operacao = Integer.parseInt(request.getParameter("operacao"));
}
if (operacao == 1){
System.out.println("p1");
testeExemploJPA.teste();
System.out.println("p2");
}
} //DoGet
} // Class
<?xml version="1.0" encoding="UTF-8"?>
<persistence version="1.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_1_0.xsd">
<persistence-unit name="exemploJPA" transaction-type="RESOURCE_LOCAL">
<provider>oracle.toplink.essentials.ejb.cmp3.EntityManagerFactoryProvider</provider>
<class>br.com.exemplojpa.modelo.Usuario</class>
<properties>
<property name="toplink.logging.level" value="INFO"/>
<property name="toplink.jdbc.url" value="jdbc:postgresql://localhost/satelite?charSet=LATIN1"/>
<property name="toplink.jdbc.driver" value="org.postgresql.Driver"/>
<property name="toplink.jdbc.user" value="postgres"/>
<property name="toplink.jdbc.password" value=""/>
<property name="toplink.ddl-generation" value="create-tables"/>
</properties>
</persistence-unit>
</persistence>
Abaixo tb o ERRO :oops:
java.lang.NullPointerException
oracle.toplink.essentials.ejb.cmp3.EntityManagerFactoryProvider.createEntityManagerFactory(EntityManagerFactoryProvider.java:120)
javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:37)
javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:27)
br.com.exemplojpa.persistencia.UsuarioDAO.<init>(UsuarioDAO.java:26)
br.com.exemplojpa.negocio.UsuarioBusiness.inserirUsuario(UsuarioBusiness.java:23)
br.com.exemplojpa.teste.TesteExemploJPA.teste(TesteExemploJPA.java:36)
ServTeste.doGet(ServTeste.java:29)
javax.servlet.http.HttpServlet.service(HttpServlet.java:690)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
O diretorio META_INF esta dentro do dir WEB-INF.
Alguem tem ideia doq esta acontecendo?
Meu db é postgres e estou usando somente o tomcat e na lib tenho o
ejb3-persistence.jar - hibernate3.jar - postgresql-8.0-312.jdbc3.jar - postgresql-8.0-312.jdbc3.jar - postgresql-8.0-312.jdbc3.jar