Erro em Arquivo jsp

7 respostas
C

Prezados amigos, bom dia! Peço a ajuda de vcs, pois preciso rodar o jsp abaixo e o erro persiste, o que não ocorre, se em vez do jsp rodo no console, por exemplo. Colo abaixo o jsp primeiro, depois o arquivo da camada de negócios, depois o da camada de acesso e por último o erro que aparece no browser. Desde já agradeço, pois preciso termimar esse sistema até amanhã.

Arquivo feriados.jsp

<%@ page import="br.com.ect.negocio.Feriado,java.util.List" %>
<html>
<head>
	<title>Feriados</title>
</head>
<body>	
	<img src="../imagens/ect_logo.jpeg" alt="" width="100" height="20" border="0">
	<Font  size="+1" face="Courier New"><b>
		&nbsp;&nbsp;Cadastro de Feriados
	</FONT></b><br><br>
	<hr>
	<TABLE border ="0" align="center"> 
  	<TR class="titulo">
			<td align="center"><b>Data</b>&nbsp;&nbsp;&nbsp;</td>	
			<td align="center"><b>Tipo</b>&nbsp;&nbsp;&nbsp;</td>	
			<td align="center"><b>Motivo</b>&nbsp;&nbsp;&nbsp;</td>
			<td align="center"><b>Municípios</b>&nbsp;&nbsp;&nbsp;</td>
			<td align="center"><b>REOP(s)</b>&nbsp;&nbsp;&nbsp;</td>
		</tr>
		<%
		Feriado feriado = new Feriado();
		List<Feriado> feriados = feriado.dao.getLista(); 
		for(Feriado feriado2 : feriados){
		%>
			<TR>	
				<td align="center"><%=feriado2.getDataFormatada()%>&nbsp;&nbsp;&nbsp;</td>
				<td align="center"><%=feriado2.getTipo()%>&nbsp;&nbsp;&nbsp;</td>
				<td align="center"><%=feriado2.getMotivo()%>&nbsp;&nbsp;&nbsp;</td>
				<td align="center"><%=feriado2.getMotivo()%>&nbsp;&nbsp;&nbsp;</td>
				<td align="center"><%=feriado2.getReops()%>&nbsp;&nbsp;&nbsp;</td>
			</tr>
		<%
		}
		%>			 
	</TABLE><br><br>
</BODY>
</HTML>

Arquivo Feriado.java

//  Generated by StarUML(tm) Java Add-In
//
//  @ Project : sidat
//  @ File Name : Feriado.java
//  @ Date : 17/7/2009
//  @ Author : Carlos Eduardo Torres Dias
package br.com.ect.negocio;

import java.sql.SQLException;
import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.GregorianCalendar;

import br.com.ect.acesso.FeriadoDAO;

public class Feriado {
	private Date data;
	private String tipo;
	private String motivo;
	private String reops;
	public Municipio municipio;
	public FeriadoDAO dao;
	
	public Feriado() throws SQLException {
		dao = new FeriadoDAO();
		municipio = new Municipio();
	}
	public Date getData() throws ParseException {
		return data; 
	}
	
	public String getDataFormatada() throws ParseException {
		Date data = this.data;
		String dat = String.valueOf(data);
		dat = dat.substring(8,10) + "/" + dat.substring(5,7) + "/" + dat.substring(0,4); 
		return dat;
	}

	public String getTipo() {
		return tipo;
	}

	public String getMotivo() {
		return motivo;
	}

	public String getReops() {
		return reops;
	}

	public void setData(Date data) {
		this.data = data;
	}

	public void setTipo(String tipo) {
		this.tipo = tipo;
	}

	public void setMotivo(String motivo) {
		this.motivo = motivo;
	}

	public void setReops(String reops) {
		this.reops = reops;
	}	
	
	public void carregar(Date data,String municipio) throws SQLException, ParseException {
		this.data = data;
		this.municipio.setNome(municipio);
		dao.carregar(this);
	}
}

Arquivo FeriadoDAO.java

package br.com.ect.acesso;

import java.sql.Connection;
import java.sql.Date;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.List;
import br.com.ect.negocio.Feriado;

public class FeriadoDAO {
	private Connection connection;
	private PreparedStatement stmt;
	private ResultSet rs;
		
	public FeriadoDAO() throws SQLException {
		connection = ConnectionFactory.getConnection();	
	}
	
	public void carregar(Feriado feriado) throws SQLException, ParseException {
		stmt = connection.prepareStatement(
			"Select * from feriado " +
			"where data = ? and idMunicipio = ?;");
		stmt.setDate(1, (Date) feriado.getData());
		stmt.setInt(2, feriado.municipio.getCodigo());
		rs = stmt.executeQuery();
		rs.first();
		feriado.setData(rs.getDate("data"));

		rs.close();
		stmt.close();			
	}
	
	public List<Feriado> getLista() throws SQLException{
		stmt = connection.prepareStatement("Select * from feriado order by data;");
		rs = stmt.executeQuery();
		List<Feriado> feriados = new ArrayList<Feriado>();
		while (rs.next()) {
			Feriado feriado = new Feriado();
			feriado.setData(rs.getDate("data"));
			switch (rs.getByte("motivo")) {
				case 1:
					feriado.setMotivo("Aniversário do Município");
					break;
				case 2:
					feriado.setMotivo("Dia da Adoração de Cristo");
					break;
				case 3:
					feriado.setMotivo("Dia da Criação");
					break;
				case 4:
					feriado.setMotivo("Dia da Imaculada Conceição de Maria ");
					break;
				case 5:
					feriado.setMotivo("Dia de Nossa Senhora da Guia");
					break;
				case 6:
					feriado.setMotivo("Dia de São Benedito");
					break;
				case 7:
					feriado.setMotivo("Dia de São Jorge");
					break;
				case 8:
					feriado.setMotivo("Dia do Evangelho");
					break;
				case 9:
					feriado.setMotivo("Dia do Evangélico");
					break;
				case 10:
					feriado.setMotivo("Emancipação do Município");
					break;
				case 11:
					feriado.setMotivo("Emancipação Política");
					break;
				case 12:
					feriado.setMotivo("Emancipação Político-Administrativa");
					break;
				case 13:
					feriado.setMotivo("Exposição Agropecuária");
					break;
				case 14:
					feriado.setMotivo("Falecimento 1º Prefeito");
					break;
				case 15:
					feriado.setMotivo("Municipal");
					break;
				case 16:
					feriado.setMotivo("Padroeiro(a)");
					break;
				case 17:
					feriado.setMotivo("Plebiscito da Emancipação");
					break;
				case 18:
					feriado.setMotivo("Confraternização Universal");
					break;
				case 19:
					feriado.setMotivo("Carnaval");
					break;
				case 20:
					feriado.setMotivo("Paixão de Cristo");
					break;
				case 21:
					feriado.setMotivo("Tiradentes");
					break;
				case 22:
					feriado.setMotivo("Dia do Trabalho");
					break;
				case 23:
					feriado.setMotivo("Corpus Christi");
					break;
				case 24:
					feriado.setMotivo("Independência do Brasil");
					break;
				case 25:
					feriado.setMotivo("Nossa Sra. Aparecida - Padroeira do Brasil");
					break;
				case 26:
					feriado.setMotivo("Finados");
					break;
				case 27:
					feriado.setMotivo("Proclamação da República");
					break;
				case 28:
					feriado.setMotivo("Natal");
					break;
			}
			feriado.setReops(rs.getString("reops"));
			if(rs.getString("tipo").equalsIgnoreCase("M")) {
				feriado.setTipo("Municipal");
				feriado.municipio.carregar("",rs.getShort("idMunicipio"));
			}
			else if (rs.getString("tipo").equalsIgnoreCase("N")) {
				feriado.setTipo("Nacional");
			}
			else if(rs.getString("tipo").equalsIgnoreCase("E")) {
				feriado.setTipo("Estadual");
				feriado.municipio.carregar("",rs.getInt("idMunicipio"));
			}
			feriados.add(feriado);
		}
		rs.close();
		stmt.close();
		return feriados;
	}
}

Erro

HTTP Status 500 - 

--------------------------------------------------------------------------------

type Exception report

message 

description The server encountered an internal error () that prevented it from fulfilling this request.

exception 

org.apache.jasper.JasperException: Exception in JSP: /relatorios/feriados.jsp:21

18: 			<td align="center"><b>REOP(s)</b>&nbsp;&nbsp;&nbsp;</td>
19: 		</tr>
20: 		<%
21: 		Feriado feriado = new Feriado();
22: 		List<Feriado> feriados = feriado.dao.getLista(); 
23: 		for(Feriado feriado2 : feriados){
24: 		%>


Stacktrace:
	org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:504)
	org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:375)
	org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:314)
	org.apache.jasper.servlet.JspServlet.service(JspServlet.java:264)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:802)


root cause 

javax.servlet.ServletException: com.mysql.jdbc.Driver
	org.apache.jasper.runtime.PageContextImpl.doHandlePageException(PageContextImpl.java:858)
	org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:791)
	org.apache.jsp.relatorios.feriados_jsp._jspService(org.apache.jsp.relatorios.feriados_jsp:100)
	org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:97)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
	org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:332)
	org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:314)
	org.apache.jasper.servlet.JspServlet.service(JspServlet.java:264)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:802)


root cause 

java.sql.SQLException: com.mysql.jdbc.Driver
	br.com.ect.acesso.ConnectionFactory.getConnection(ConnectionFactory.java:14)
	br.com.ect.acesso.FeriadoDAO.<init>(FeriadoDAO.java:21)
	br.com.ect.negocio.Feriado.<init>(Feriado.java:27)
	org.apache.jsp.relatorios.feriados_jsp._jspService(org.apache.jsp.relatorios.feriados_jsp:65)
	org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:97)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
	org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:332)
	org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:314)
	org.apache.jasper.servlet.JspServlet.service(JspServlet.java:264)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:802)


note The full stack trace of the root cause is available in the Apache Tomcat/5.5.15 logs.


--------------------------------------------------------------------------------

Apache Tomcat/5.5.15

7 Respostas

Marco_A_Caetano

erro ao criar a conexão, la na sua DAO

esse driver ta rodando certinho? faz um teste ai

C

Marco, obrigado pela resposta, tá rodando sim, criei uma classe teste e faço o acesso ao banco normalmente, imprimo no console usando o famoso system.out.println, o problema ocorre quando acesso a partir da página jsp, o que pode ser?

P

talvez no seu contexto web o dirver jdbc do mysql não esteja configurado corretamente.

Marcio_Nogueira

Verifique se você está passando o driver correto. Onde você colocou a chamada a Class.forName("") no seu código? :wink:

C

Primeiramente, muito obrigado pelas respostas, abaixo colo o código da classe connectionfactory, como verifico a configuração do driver no context web? Desde já, valeu!!!

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

public class ConnectionFactory {
	public static Connection getConnection() throws SQLException {
		try {
			Class.forName("com.mysql.jdbc.Driver");
			System.out.println("Conectando ao banco de dados...");
			return DriverManager.getConnection("jdbc:mysql://localhost/sidat","sidat","123456");
		} 
		catch (ClassNotFoundException e) {			
			throw new SQLException(e.getMessage());			
		}
	}
}
C

Primeiramente, muito obrigado pelas respostas, abaixo colo o código da classe connectionfactory, como verifico a configuração do driver no context web? Desde já, valeu!!!

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

public class ConnectionFactory {
	public static Connection getConnection() throws SQLException {
		try {
			Class.forName("com.mysql.jdbc.Driver");
			System.out.println("Conectando ao banco de dados...");
			return DriverManager.getConnection("jdbc:mysql://localhost/sidat","sidat","123456");
		} 
		catch (ClassNotFoundException e) {			
			throw new SQLException(e.getMessage());			
		}
	}
}
C

Obrigado a todos, era problema no contexto web mesmo.

Criado 10 de agosto de 2009
Ultima resposta 14 de ago. de 2009
Respostas 7
Participantes 4