Passagem de parametros para servlet

Ola Boa tarde.

Eu to criando um pequeno sistema de vendas pela web, o banco é My Sql e possuo apenas três tabelas (venda,cliente e produto), ainda não criei todas as intefaces até mesmo por que eu ainda estou com dificuldade na primeira parte.

O problema é o seguinte: eu crio a pagina HTML, consigo mapear um servlet pelo xml. Quando envio os dados do html para o servlet preencher o clienteModel(geters e seters) os dados são recebidos, o erro acontece no cliente dao. Na exception é exibido null pointer exception.

Bem pelo que entendo a unica possibilidade de ocorrer esse tipo de erro é no PreparedStatement, na hora de inserir no banco.
O estranho mesmo é o que acontece com o html e o servlet, se eu remover o ClienteDAO e montar um dispatcher pelo servlet a pagina invocada no dispatcher exibe os dados do cliente normalmente.

Outro erro que ocorre também é de conexão ou inicialização do banco de dados.
Eu criei minha classe de conexão (ConnectionFactory) com um metodo que retorna uma connection quando é instaciado.
Quando eu crio uma classe com o metodo main e testo a classe de conexão a mesma executa e quando eu rodo a aplicação ocorre o erro (no suitable class) .

Alguém poderia me ajudar

Cesar.

Opa… blz?
Posta o codigo e o log de erro tb…

Abs

Este é o log de erro.

java.lang.ClassNotFoundException: com.mysql.jdbc.Driver
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1645)
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1491)
at java.lang.ClassLoader.loadClassInternal(Unknown Source)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Unknown Source)
at br.com.jdbc.JDBC.getConnection(JDBC.java:14)
at br.com.dao.ClienteDAO.(ClienteDAO.java:20)
at br.com.servlet.Adiciona.service(Adiciona.java:72)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:857)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:588)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
at java.lang.Thread.run(Unknown Source)
java.sql.SQLException: No suitable driver found for jdbc:mysql://localhost/sistemadevendas
at java.sql.DriverManager.getConnection(Unknown Source)
at java.sql.DriverManager.getConnection(Unknown Source)
at br.com.jdbc.JDBC.getConnection(JDBC.java:20)
at br.com.dao.ClienteDAO.(ClienteDAO.java:20)
at br.com.servlet.Adiciona.service(Adiciona.java:72)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:857)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:588)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
at java.lang.Thread.run(Unknown Source)

Essa é a classe de acesso ao banco.

package br.com.jdbc;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;

public class JDBC {

private Connection connection;

public Connection getConnection()throws SQLException{
	 
	try {
		Class.forName("com.mysql.jdbc.Driver");	
	} catch (ClassNotFoundException e) {
		// TODO Auto-generated catch block
		System.out.println("classe nao encontrada");
		e.printStackTrace();
	}
return connection = DriverManager.getConnection("jdbc:mysql://localhost/sistemadevendas","root","654321");

}

}

Essa é a classe ClienteDAO.

package br.com.dao;

import java.sql.Connection;
import java.sql.Date;
import java.sql.PreparedStatement;
import java.sql.SQLException;

import br.com.jdbc.JDBC;
import br.com.modelo.ClienteModel;

public class ClienteDAO {

private Connection connection;

public ClienteDAO(){
	
	try {
		connection = new JDBC().getConnection();
	} catch (SQLException e) {
		// TODO Auto-generated catch block
		e.printStackTrace();
	}
		
}
public void adiciona(ClienteModel cliente){
 String insere="insert into cliente (cpf,nome,email,data_cadastro) values(?,?,?,?)";
 
 try {
	PreparedStatement pstm = connection.prepareStatement(insere);
	 pstm.setLong(1,cliente.getCpf());
	 pstm.setString(2,cliente.getNome());
	 pstm.setString(3,cliente.getEmail());
	 pstm.setDate(4,new Date (cliente.getData_cadastro().getTimeInMillis()));
} catch (SQLException e) {
	// TODO Auto-generated catch block
	e.printStackTrace();
}
 
}

}

Esse é o servlet Adiciona.

package br.com.servlet;

import java.io.IOException;
import java.io.PrintWriter;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import br.com.dao.ClienteDAO;
import br.com.modelo.ClienteModel;

/**

  • Servlet implementation class Adiciona
    */
    public class Adiciona extends HttpServlet {
    private static final long serialVersionUID = 1L;

    /**

    • @see HttpServlet#HttpServlet()
      */
      public Adiciona() {
      super();
      // TODO Auto-generated constructor stub
      }

    /**

    • @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
      */
      protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
      // TODO Auto-generated method stub
      }

    /**

    • @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
      */
      protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
      // TODO Auto-generated method stub
      }
      public void service(HttpServletRequest request,HttpServletResponse response)
      throws ServletException,IOException{
      PrintWriter out= response.getWriter();

    String nome=request.getParameter(“nome”);
    long cpf=Long.parseLong(request.getParameter(“cpf”));
    String email=request.getParameter(“email”);
    String dataEmTexto=request.getParameter(“data”);
    Calendar data=null;

    try {
    Date date=new SimpleDateFormat(“dd/MM/yyyy”).parse(dataEmTexto);
    data = Calendar.getInstance();
    data.setTime(date);
    } catch (ParseException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    }
    ClienteModel clienteModel =new ClienteModel();
    clienteModel.setCpf(cpf);
    clienteModel.setData_cadastro(data);
    clienteModel.setNome(nome);
    clienteModel.setEmail(email);

    ClienteDAO dao = new ClienteDAO();
    dao.adiciona(clienteModel);

    out.print("");
    out.print("");
    out.print("<OK "+clienteModel.getNome());
    out.print("OK "+clienteModel.getCpf());
    out.print(“OK “+clienteModel.getEmail());
    out.print(“OK “+clienteModel.getData_cadastro());
    out.print(””);
    out.print(””);
    }
    }

Essa é a pagina.

Insert title here Nome:
E-mail:
CPF:
Danta:

E esse é o xml.

<?xml version="1.0" encoding="UTF-8"?> sistema index.html index.htm index.jsp default.html default.htm default.jsp Adiciona Adiciona br.com.servlet.Adiciona Adiciona /Adiciona

Segue tamém uma print da disposição de como estão organizadas as pastas.

Valeu pela ajuda.

Opa… cara nem olhei o resto do teu código, mas a linha abaixo indica que não localizou o driver do mysql, tu adicionou este jar na tua aplicação?

java.lang.ClassNotFoundException: com.mysql.jdbc.Driver 

Coloquei.

Cara eu tirei um print da tela que mostra como esta a organização do projeto.
Vc sabe como anexar uma imagem a este tópico?

Tu tens certeza que tu adicionou o jar no projeto?
Esse erro é porque ele não achou a classe… tu configurou certinho o teu build path?

Coloquei me passa teu e-mail que te mando um print da imagem de como estão organizadas as pastas.

[quote=quintacs]Este é o log de erro.

[code]java.lang.ClassNotFoundException: com.mysql.jdbc.Driver
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1645)
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1491)
at java.lang.ClassLoader.loadClassInternal(Unknown Source)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Unknown Source)
at br.com.jdbc.JDBC.getConnection(JDBC.java:14)
at br.com.dao.ClienteDAO.(ClienteDAO.java:20)
at br.com.servlet.Adiciona.service(Adiciona.java:72)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:857)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:588)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
at java.lang.Thread.run(Unknown Source)
java.sql.SQLException: No suitable driver found for jdbc:mysql://localhost/sistemadevendas
at java.sql.DriverManager.getConnection(Unknown Source)
at java.sql.DriverManager.getConnection(Unknown Source)
at br.com.jdbc.JDBC.getConnection(JDBC.java:20)
at br.com.dao.ClienteDAO.(ClienteDAO.java:20)
at br.com.servlet.Adiciona.service(Adiciona.java:72)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:857)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:588)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
at java.lang.Thread.run(Unknown Source)

Essa é a classe de acesso ao banco.

package br.com.jdbc;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;

public class JDBC {

private Connection connection;

public Connection getConnection()throws SQLException{
	 
	try {
		Class.forName("com.mysql.jdbc.Driver");	
	} catch (ClassNotFoundException e) {
		// TODO Auto-generated catch block
		System.out.println("classe nao encontrada");
		e.printStackTrace();
	}
return connection = DriverManager.getConnection("jdbc:mysql://localhost/sistemadevendas","root","654321");

}

}

Essa é a classe ClienteDAO.

package br.com.dao;

import java.sql.Connection;
import java.sql.Date;
import java.sql.PreparedStatement;
import java.sql.SQLException;

import br.com.jdbc.JDBC;
import br.com.modelo.ClienteModel;

public class ClienteDAO {

private Connection connection;

public ClienteDAO(){
	
	try {
		connection = new JDBC().getConnection();
	} catch (SQLException e) {
		// TODO Auto-generated catch block
		e.printStackTrace();
	}
		
}
public void adiciona(ClienteModel cliente){
 String insere="insert into cliente (cpf,nome,email,data_cadastro) values(?,?,?,?)";
 
 try {
	PreparedStatement pstm = connection.prepareStatement(insere);
	 pstm.setLong(1,cliente.getCpf());
	 pstm.setString(2,cliente.getNome());
	 pstm.setString(3,cliente.getEmail());
	 pstm.setDate(4,new Date (cliente.getData_cadastro().getTimeInMillis()));
} catch (SQLException e) {
	// TODO Auto-generated catch block
	e.printStackTrace();
}
 
}

}

Esse é o servlet Adiciona.

package br.com.servlet;

import java.io.IOException;
import java.io.PrintWriter;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import br.com.dao.ClienteDAO;
import br.com.modelo.ClienteModel;

/**

  • Servlet implementation class Adiciona
    */
    public class Adiciona extends HttpServlet {
    private static final long serialVersionUID = 1L;

    /**

    • @see HttpServlet#HttpServlet()
      */
      public Adiciona() {
      super();
      // TODO Auto-generated constructor stub
      }

    /**

    • @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
      */
      protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
      // TODO Auto-generated method stub
      }

    /**

    • @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
      */
      protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
      // TODO Auto-generated method stub
      }
      public void service(HttpServletRequest request,HttpServletResponse response)
      throws ServletException,IOException{
      PrintWriter out= response.getWriter();

    String nome=request.getParameter(“nome”);
    long cpf=Long.parseLong(request.getParameter(“cpf”));
    String email=request.getParameter(“email”);
    String dataEmTexto=request.getParameter(“data”);
    Calendar data=null;

    try {
    Date date=new SimpleDateFormat(“dd/MM/yyyy”).parse(dataEmTexto);
    data = Calendar.getInstance();
    data.setTime(date);
    } catch (ParseException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    }
    ClienteModel clienteModel =new ClienteModel();
    clienteModel.setCpf(cpf);
    clienteModel.setData_cadastro(data);
    clienteModel.setNome(nome);
    clienteModel.setEmail(email);

    ClienteDAO dao = new ClienteDAO();
    dao.adiciona(clienteModel);

    out.print("");
    out.print("");
    out.print("<OK "+clienteModel.getNome());
    out.print("OK "+clienteModel.getCpf());
    out.print(“OK “+clienteModel.getEmail());
    out.print(“OK “+clienteModel.getData_cadastro());
    out.print(””);
    out.print(””);
    }
    }

Essa é a pagina.

Insert title here Nome:
E-mail:
CPF:
Danta:

E esse é o xml.

<?xml version="1.0" encoding="UTF-8"?> sistema index.html index.htm index.jsp default.html default.htm default.jsp Adiciona Adiciona br.com.servlet.Adiciona Adiciona /Adiciona

[/code]

Segue tamém uma print da disposição de como estão organizadas as pastas.

Valeu pela ajuda.[/quote]

Pessoal ta acontecendo um erro muito estranho.

Eu reconstrui todo o sistema minuciosamente e o mesmo erro contiua acontecendo.
Coloquei o driver do mysql no build path do projeto e o erro persiste.

Alguém pode me ajudar.

Grato.

Boa tarde Cesar;

Coloque o jar do mysql dentro da pasta lib do web-inf e veja se funciona.
Qualquer coisa poste aí

[quote=Ygor]Boa tarde Cesar;

Coloque o jar do mysql dentro da pasta lib do web-inf e veja se funciona.
Qualquer coisa poste aí[/quote]

Ygor, eu baixei um novo eclipse, eu esta usando o galileo e baixei o europa, e parece ser um pouco melhor, ele esta me auxiliando bem.
Quando o erro foi gerado ele me indicou uma solução um pouco melhor e ao explorar as alternativas eu mandei ele resolver o problema sozinho e o eclipse criou uma pasta chamada .JETEmitters no workspace e tudo se resolveu como num passe de mágica.

Ygor , Grato pela ajuda.