Olá a todos, estou desenvolvendo um projeto para web chamado Siscars (projeto bem básico por sinal).
Estou usando o WampServer p/ database e o ApacheTomcat.
É um sistema simples, onde o usuário pode cadastrar o seu carro para venda, e nesse cadastro contém o modelo do carro, a placa, o ano, a cor e o preço.
Está quase tudo funcionando perfeitamente, eu consigo cadastrar os carros no banco, mas a parte em que eu listo todos os carros para mostrá-los em uma tabela em uma página jsp está dando o seguinte erro:
[code]description The server encountered an internal error () that prevented it from fulfilling this request.
exception
org.apache.jasper.JasperException: javax.servlet.ServletException: java.lang.NoSuchMethodError: pacote.Carro.getPlaca()I
org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:522)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:398)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:342)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:267)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
root cause
javax.servlet.ServletException: java.lang.NoSuchMethodError: pacote.Carro.getPlaca()I
org.apache.jasper.runtime.PageContextImpl.doHandlePageException(PageContextImpl.java:862)
org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:791)
org.apache.jsp.buscartodos_jsp._jspService(buscartodos_jsp.java:210)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:374)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:342)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:267)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
root cause
java.lang.NoSuchMethodError: pacote.Carro.getPlaca()I
org.apache.jsp.buscartodos_jsp._jspService(buscartodos_jsp.java:181)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:374)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:342)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:267)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)[/code]
Estou fazendo a conexão com o banco através de uma classe DAO:
[code]package pacote;
import java.sql.*;
import java.util.List;
import java.util.ArrayList;
public class CarroDAO
{
Connection Conn;
Statement Stmt;
ResultSet RS;
public CarroDAO()
{
try
{
Class.forName(“org.gjt.mm.mysql.Driver”).newInstance();
Conn = DriverManager.getConnection(“jdbc:mysql://localhost/carro”,“root”,"");
Stmt = Conn.createStatement();
}catch (Exception E){ E.printStackTrace();}
}
public boolean inserir(Carro carro)
{
int x =1;
String query = "insert into caracteristicas values (0,'"+carro.getPlaca()+"','"+carro.getModelo()+"','"+carro.getCor()+"','"+carro.getAno()+"','"+carro.getPreco()+"')";
try{
x=Stmt.executeUpdate(query);
}catch (Exception E){ E.printStackTrace();}
if (x==0){return false;} else {return true;}
}
public boolean apagar(Carro carro)
{
int x = 1;
String query = "delete from caracteristicas where numero = "+carro.getNumero();
try {
x = Stmt.executeUpdate(query);
}catch(Exception E){ E.printStackTrace(); }
if(x == 1 ){ return true; } else { return false; }
}
public Carro buscar(int numero)
{
String query = "select * from caracteristicas where numero = "+numero;
Carro carro = new Carro();
try {
RS = Stmt.executeQuery(query);
RS.next();
carro.setNumero(RS.getInt(1));
carro.setModelo(RS.getString(3));
carro.setPlaca(RS.getString(2));
carro.setCor(RS.getString(4));
carro.setAno(RS.getInt(5));
carro.setPreco(RS.getDouble(6));
}catch(Exception E){ E.printStackTrace(); }
return carro;
}
public List<Carro> buscarTodos()
{
String query = "select * from caracteristicas";
List<Carro> carros = new ArrayList<Carro>();
Carro carro;
try {
RS = Stmt.executeQuery(query);
while(RS.next())
{
carro = new Carro();
carro.setNumero(RS.getInt(1));
carro.setModelo(RS.getString(3));
carro.setPlaca(RS.getString(2));
carro.setCor(RS.getString(4));
carro.setAno(RS.getInt(5));
carro.setPreco(RS.getDouble(6));
carros.add(carro);
}
}catch(Exception E){ E.printStackTrace(); }
return carros;
}
public boolean alterar(Carro carro)
{ int x = 1;
String query = "UPDATE caracteristicas SET placa = "+carro.getPlaca()+", modelo = '"+carro.getModelo()+"', cor = '"+carro.getCor()+"',ano = "+carro.getAno()+",preco = "+carro.getPreco()+" WHERE numero = "+carro.getNumero()+"";
System.out.println(query);
try {
x = Stmt.executeUpdate(query);
}catch(Exception E){ E.printStackTrace(); }
if(x == 0 ){ return true; } else { return false; }
}
}[/code]
Que usa a classe carro:
[code]package pacote;
public class Carro
{
private int numero;
private String cor;
private String placa;
private int ano;
private String modelo;
private String fabricante;
private double preco;
public void setNumero(int numero)
{
this.numero = numero;
}
public void setCor(String cor)
{
this.cor = cor;
}
public void setPlaca (String placa)
{
this.placa = placa;
}
public void setModelo(String modelo)
{
this.modelo = modelo;
}
public void setAno(int ano)
{
this.ano = ano;
}
public void setFabricante(String fabricante)
{
this.fabricante = fabricante;
}
public void setPreco (double preco)
{
this.preco = preco;
}
public int getNumero()
{
return this.numero;
}
public String getCor()
{
return this.cor;
}
public String getPlaca()
{
return this.placa;
}
public String getModelo()
{
return this.modelo;
}
public String getFabricante()
{
return this.fabricante;
}
public int getAno()
{
return this.ano;
}
public double getPreco ()
{
return this.preco;
}
}[/code]
A classe buscar todos:
[code]
package pacote;
import java.util.List;
import java.util.ArrayList;
public class BuscarTodos{
public static void main(String[] args)
{
List<Carro> carros = new ArrayList<Carro>();
CarroDAO dao = new CarroDAO();
carros = dao.buscarTodos();
for(Carro carro : carros)
{
System.out.println(carro.getNumero()+"-"+carro.getModelo()+" - "+carro.getPlaca()+" - "+carro.getCor()+" - "+carro.getAno());
}
}
}[/code]
E o código jsp que estou usando para mostrar os carros cadastrados:
<%@ page import = "pacote.CarroDAO" %>
<%@ page import = "pacote.Carro" %>
<%@ page import = "pacote.BuscarTodos" %>
<%@ page import = "java.util.List" %>
<%@ page import = "java.util.ArrayList" %>
<%@ page import = "pacote.ApagarCarro" %>
<html>
<head>
<meta http-equiv="Content-Type" content=" charset=iso-8859-1">
<title>Homepage</title>
</head>
<body>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<div id="imagem">
<img src="scars.png" width="1674" height="153" alt="logo" longdesc="homrpage.html" />
</div>
<div id="menu">
<ul>
<li><a href="homrpage.html">Home</a></li>
<li><a href="car.html">Cadastro</a></li>
<li><a href="buscartodos.jsp">Carros Cadastrados</a></li>
<li><a href="historia.html">Historia</a></li>
<li><a href="faleconosco.html">Fale Conosco</a></li>
</ul>
</div>
<div id="corpo">
<center>
<div id="tabela">
<h3>Veículos Cadastrados:</h3>
<table border="1" bgcolor="#FFFFFFF" cellspacing="10">
<tr>
<td>Modelo</td>
<td>Cor</td>
<td>Placa</td>
<td>Ano</td>
<td>Preço</td>
<td>Exclusão</td>
<td>Alteração</td>
<%
List<Carro> carros = new ArrayList<Carro>();
CarroDAO dao = new CarroDAO();
carros = dao.buscarTodos();
for(Carro carro : carros)
{
%>
<tr>
<td><%= carro.getModelo()%></td>
<td><%= carro.getCor()%></td>
<td><%= carro.getPlaca()%></td>
<td><%= carro.getAno()%></td>
<td>R$ <%= carro.getPreco()%></td>
<td><a href="apagarcarro.jsp?codigo=<%=carro.getNumero()%>"><input type="button" value="Excluir"></a></td>//Aqui estou colocando um botão para disponibilizar a exclusão do registro
<td><a href="alterarcarro.jsp?codigo=<%=carro.getNumero()%>"><input type="button" value="Alterar"></a></td>//Aqui estou colocando um botão para possibilitar a alteração do registro
</tr>
<% } %>
</table>
</div>
</center>
</div>
</body>
</html>
Desde já, agradeço pela atenção.