Pessoal,
Estou com um problema que é estranho.
Tenho uma tela de cadastro de clientes, eu digito os dados e clico em inserir, porém ele retorna o seguinte erro:
GRAVE: Servlet.service() for servlet [jsp] in context with path [/WebLibrary] threw exception [javax.servlet.ServletException: java.lang.NoSuchMethodError: br.com.weblibrary.dto.ClienteDTO.setIdCliente(Ljava/lang/String;)V] with root cause
java.lang.NoSuchMethodError: br.com.weblibrary.dto.ClienteDTO.setIdCliente(Ljava/lang/String;)V
at org.apache.jsp.cliente_jsp._jspService(cliente_jsp.java:99)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:433)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:389)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:333)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:304)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:224)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:164)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:100)
at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:929)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:405)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:279)
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:515)
at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:302)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
Segue o código do meu .jsp da tela de cadastro.
<%@page language="java" contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<%@page import="java.sql.Connection"%>
<%@page import="br.com.weblibrary.utils.DBUtils"%>
<%@page import="br.com.weblibrary.dto.ClienteDTO"%>
<%@page import="br.com.weblibrary.dao.ClientesDAO"%>
<%
String btnInsert = request.getParameter("btnInsert");
String btnUpdate = request.getParameter("btnUpdate");
String btnDelete = request.getParameter("btnDelete");
String btnLocate = request.getParameter("btnLocate");
String btnClose = request.getParameter("btnClose");
String txtId = request.getParameter("txtId");
if (txtId == null)
txtId = "";
String txtNome = request.getParameter("txtNome");
if (txtNome == null)
txtNome = "";
String txtCpf = request.getParameter("txtCpf");
if (txtCpf == null)
txtCpf = "";
String txtDtNcto = request.getParameter("txtDtNcto");
if (txtDtNcto == null)
txtDtNcto = "";
if (btnInsert != null) {
Connection con = DBUtils.getConnection();
ClientesDAO dao = new ClientesDAO(con);
ClienteDTO dto = new ClienteDTO();
dto.setIdCliente(txtId);
dto.setNmCliente(txtNome);
dto.setNrCPF(txtCpf);
dto.setDtNascimento(txtDtNcto);
int result = dao.insert(dto);
if (result == 1) {
out.println("Estado inserido com sucesso!");
} else {
out.println("ERRO: Estado não inserido!");
}
} else if (btnUpdate != null) {
Connection con = DBUtils.getConnection();
ClientesDAO dao = new ClientesDAO(con);
ClienteDTO dto = new ClienteDTO();
dto.setIdCliente(txtId);
dto.setNmCliente(txtNome);
dto.setNrCPF(txtCpf);
dto.setDtNascimento(txtDtNcto);
int result = dao.update(dto);
if (result == 1) {
out.println("Estado alterado com sucesso!");
} else {
out.println("ERRO: Estado não alterado!");
}
} else if (btnDelete != null) {
Connection con = DBUtils.getConnection();
ClientesDAO dao = new ClientesDAO(con);
int result = dao.delete(txtNome);
if (result == 1) {
out.println("Estado deletado com sucesso!");
} else {
out.println("ERRO: Estado não deletado!");
}
} else if (btnLocate != null) {
Connection con = DBUtils.getConnection();
ClientesDAO dao = new ClientesDAO(con);
ClienteDTO dto = dao.locate(txtNome);
if (dto != null) {
out.println("Estado localizado com sucesso!");
txtId = dto.getIdCliente();
txtNome = dto.getNmCliente();
txtCpf = dto.getNrCPF();
txtDtNcto = dto.getDtNascimento();
} else {
out.println("ERRO: Estado não localizado!");
}
} else if (btnClose != null) {
response.sendRedirect("index.jsp");
}
%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>Tabela de Clientes</title>
</head>
<body>
<h1>Tabela de Clientes</h1>
<form action="" method="POST">
ID:
<input type="text" id="txtId" name="txtId" size="3"
maxlength="3" value="<%=txtId%>" />
<input type="submit" id="btnLocate" name="btnLocate" value="Localizar"/><br/>
Nome:
<input type="text" id="txtNome" name="txtNome" size="30"
maxlength="30" value="<%=txtNome%>" /> <br />
CPF: <input type="text" id="txtCpf" name="txtCpf" size="15"
maxlength="14" value="<%=txtCpf%>" /> <br />
Data Ncto: <input type="text" id="txtDtNcto" name="txtDtNcto" size="12"
maxlength="12" value="<%=txtDtNcto%>" /> <br />
<input type="submit" id="btnInsert" name="btnInsert" value="Inserir" />
<input type="submit" id="btnUpdate" name="btnUpdate" value="Alterar" />
<input type="submit" id="btnDelete" name="btnDelete" value="Deletar" />
<input type="submit" id="btnClose" name="btnClose" value="Fechar" /> <br />
</form>
</body>
</html>
E da DAO para cadastrar
package br.com.weblibrary.dao;
import br.com.weblibrary.dto.ClienteDTO;
import br.com.weblibrary.utils.DBUtils;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.logging.Level;
import java.util.logging.Logger;
public class ClientesDAO {
private Connection con;
public ClientesDAO(Connection con) {
this.con = con;
}
// Insert
public int insert(ClienteDTO dto) {
String sql = "INSERT INTO CLIENTES " + "VALUES('" + dto.getIdCliente()
+ "'," + "'" + dto.getNmCliente() + "'," + "'" + dto.getNrCPF()
+ "'," + dto.getDtNascimento() + "'" + ");";
return DBUtils.executeUpdate(con, sql);
}
// Update
public int update(ClienteDTO dto) {
String sql = "UPDATE Clientes " + "SET NmCliente = '"
+ dto.getNmCliente() + "'," + "NrCPF = '" + dto.getNrCPF()
+ "'," + "DtNascimento = '" + dto.getDtNascimento() + "'"
+ "WHERE NmCliente = " + dto.getNmCliente() + ";";
return DBUtils.executeUpdate(con, sql);
}
// OU
/*
public int update2(ClienteDTO dto) {
String sql = "UPDATE Clientes " + "SET NmCliente = ?, NrCPF = ? "
+ "WHERE IdCliente = ?;";
PreparedStatement stmt = null;
try {
stmt = con.prepareStatement(sql);
stmt.setString(1, dto.getNmCliente());
stmt.setString(2, dto.getNrCPF());
stmt.setString(3, dto.getIdCliente());
return stmt.executeUpdate();
} catch (SQLException ex) {
Logger.getLogger(ClientesDAO.class.getName()).log(Level.SEVERE,
null, ex);
}
return 0;
}
*/
// Delete
public int delete(String key) {
String sql = "";
return DBUtils.executeUpdate(con, sql);
}
// Locate
public ClienteDTO locate(String key) {
String sql = "SELECT * FROM Estados WHERE IdEstado = '" + key + "';";
ResultSet rs = DBUtils.executeQuery(con, sql);
try {
if (rs.next()) {
ClienteDTO dto = new ClienteDTO();
dto.setIdCliente(rs.getInt(1));
dto.setNmCliente(rs.getString(2));
dto.setNrCPF(rs.getString(3));
dto.setDtNascimento(rs.getDate(4));
return dto;
}
} catch (SQLException ex) {
Logger.getLogger(ClientesDAO.class.getName()).log(Level.SEVERE,
null, ex);
} finally {
DBUtils.closeResultSet(rs);
}
return null;
}
// select
public ArrayList<ClienteDTO> select() {
String sql = "SELECT * FROM Clientes;";
ArrayList<ClienteDTO> items = new ArrayList<ClienteDTO>();
ResultSet rs = DBUtils.executeQuery(con, sql);
try {
while (rs.next()) {
ClienteDTO dto = new ClienteDTO();
dto.setIdCliente(rs.getInt(1));
dto.setNmCliente(rs.getString(2));
dto.setNrCPF(rs.getString(3));
dto.setDtNascimento(rs.getDate(4));
items.add(dto);
}
} catch (SQLException ex) {
Logger.getLogger(EstadosDAO.class.getName()).log(Level.SEVERE,
null, ex);
} finally {
DBUtils.closeResultSet(rs);
}
return items;
}
}
Alguém já teve esse problema?
Obrigado