Servlet com Classes de Entidade

Olá pessoal,

Estou fazendo um teste para desenvolver aplicações Web com servlets. O meu banco de dados é o SQL Server, estou usando a Java Persistence API para operações com tabelas. Eis o código fonte do servlet:

[b]/*

  • To change this template, choose Tools | Templates
  • and open the template in the editor.
    */

package servelets;

import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import conexoesBD.*;

/**
*

  • @author UserName
    */
    public class srvSegurados extends HttpServlet {

    /**

    • Processes requests for both HTTP GET and POST methods.
    • @param request servlet request
    • @param response servlet response
    • @throws ServletException if a servlet-specific error occurs
    • @throws IOException if an I/O error occurs
      /
      protected void processRequest(HttpServletRequest request, HttpServletResponse response)
      throws ServletException, IOException {
      Segurados s = new Segurados(); //classe de entidade
      s.setNomeSeg(request.getParameter(“txtNome”));
      s.setTipoSeg(request.getParameter(“cbTipo”));
      s.setCpfcnpjSeg(request.getParameter(“txtCnpjCpf”).replace(".", “”).
      replace("/", “”).replace("-", “”));
      // s.setDataSeg(request.getParameter(“txtData”).replace("/", “”));
      s.setEnderecoSeg(request.getParameter(“txtEndereco”));
      s.setNumeroSeg(request.getParameter(“txtNumero”));
      s.setBairroSeg(request.getParameter(“txtBairro”));
      s.setCidadeSeg(request.getParameter(“txtCidade”));
      s.setCepSeg(request.getParameter(“txtCep”).replace("-", “”));
      s.setEstadoSeg(request.getParameter(“cbEstado”));
      s.setFoneSeg(request.getParameter(“txtFone”).replace("(", “”).
      replace(")", “”).replace("-", “”));
      s.setEmailSeg(request.getParameter(“txtEmail”));
      response.setContentType(“text/html;charset=ISO-8859-1”);
      new operacoes().gravar(s); //método gravar, o qual usa o método persist do EntityManager
      PrintWriter out = response.getWriter();
      try {
      /
      TODO output your page here
      out.println("");
      out.println("");
      out.println(“Servlet srvDados”);
      out.println("");
      out.println("");
      out.println("

      Nome: " + nome + “

      ”);
      out.println("

      Tipo: " + Tipo + “

      ”);
      out.println("

      CNPJ/CPF: " + CnpjCpf + “

      ”);
      out.println("

      Data: " + Data + “

      ”);
      out.println("

      Endereço: " + Endereco + “

      ”);
      out.println("

      Número: " + Numero + “

      ”);
      out.println("

      Bairro: " + Bairro + “

      ”);
      out.println("

      Cidade: " + Cidade + “

      ”);
      out.println(“

      CEP: " + Cep + “

      ”);
      out.println(“

      Estado: " + Estado + “

      ”);
      out.println(“

      Fone: " + Fone + “

      ”);
      out.println(“

      E-Mail: " + Email + “

      ”);
      out.println(””);
      out.println(””); */
      } finally {
      out.close();
      }
      }

    //
    /**

    • Handles the HTTP GET method.
    • @param request servlet request
    • @param response servlet response
    • @throws ServletException if a servlet-specific error occurs
    • @throws IOException if an I/O error occurs
      */
      @Override
      protected void doGet(HttpServletRequest request, HttpServletResponse response)
      throws ServletException, IOException {
      processRequest(request, response);
      }

    /**

    • Handles the HTTP POST method.
    • @param request servlet request
    • @param response servlet response
    • @throws ServletException if a servlet-specific error occurs
    • @throws IOException if an I/O error occurs
      */
      @Override
      protected void doPost(HttpServletRequest request, HttpServletResponse response)
      throws ServletException, IOException {
      processRequest(request, response);
      }

    /**

    • Returns a short description of the servlet.
    • @return a String containing servlet description
      */
      @Override
      public String getServletInfo() {
      return “Short description”;
      }//

}[/b]

Uma página JSP chama esse servlet para gravar os dados. Porém, é exibida outra página com o seguinte erro:

Exception [TOPLINK-4002] (Oracle TopLink Essentials - 2.0.1 (Build b04-fcs (04/11/2008))): oracle.toplink.essentials.exceptions.DatabaseException
Internal Exception: java.sql.SQLException: Error in allocating a connection. Cause: sun.jdbc.odbc.JdbcOdbcDriver cannot be cast to javax.sql.DataSource
Error Code: 0

Alguém tem idéia do que pode ser esse erro? Será que há incompatibilidade com Java Persistence API?

Detalhe: Estou usando GlassFish

Ficarei agradecido com a ajuda.

O problema pode estar no persistence.xml
Poste-o para nós