Projeto Web - Help

3 respostas
J

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:

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)

Estou fazendo a conexão com o banco através de uma classe DAO:

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; }
				
	}
		
	}

Que usa a classe carro:

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;	
	}
	}

A classe buscar todos:

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());	
  
		 }
	}
}

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.

3 Respostas

J

Galera consegui arrumar aqui… era um erro no Tomcat mesmo.
Vlw

jweibe

joaolucasf evite ao máximo a utilização de Scriptlets em suas jsp’s em vez disso use JSTL.
Procure aprender algum framework MVC que te ajudará na organização de sua lógica e ainda
irá prover a separação das camadas da tua app. Uma dica é o vRaptor

J

Valeu pela dica cara… estava realmente precisando. Tem alguma apostila, ou material sobre JSTL que você recomenda?

Criado 25 de novembro de 2012
Ultima resposta 26 de nov. de 2012
Respostas 3
Participantes 2