Erro com jpa

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

Oi Brito_Developer,

a pasta é META-INF e não META_INF e a coloque dentro do diretório WEB-INF/classes.

Deu certo?

Opa!!
Valeu Carneiro, tinha digitado errado. Gora coloquei no lugar certo, esta quase funcionando.
A tebela foi criada no db postgres, mas nao inseriu nenhum registro.
O erro esta abaixo.

java.lang.IllegalStateException: 
Exception Description: No transaction is currently active
	oracle.toplink.essentials.internal.ejb.cmp3.transaction.base.EntityTransactionImpl.rollback(EntityTransactionImpl.java:125)
	br.com.exemplojpa.persistencia.UsuarioDAO.inserirUsuario(UsuarioDAO.java:48)
	br.com.exemplojpa.negocio.UsuarioBusiness.inserirUsuario(UsuarioBusiness.java:25)
	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)