[RESOLVIDO] Estou amaldiçoado com a pasta WebContent

6 respostas
A

Oi pessoal, coloquei aquele título pq está relacionado com a pasta WebContent apenas, mas não é ela necessáriamente.

Continuando a apostila web FJ-21 comecei a colocar os meus códigos no meu jsp de acordo como mostra na apostila, porém agora tenho um outro erro:

- Importar pacotes: OK
- Criar classe que está contida no pacote: Hell No!!

aqui está o código:
<%@ page import="br.com.estudo.bean.*, br.com.estudo.dao.*, java.util.*" %>
<html>
<ul>
<%

ContatoDAO dao = new ContatoDAO();

int numero = 4;

if (numero == 4){
%>
<li>Funciona</li>
<%
}
%>
</ul>
</html>

é bem simples o código, e o int numero 4... etc, era só para verificar se era o jsp ou a invocação. Sem o ContatoDAO dao = new ContatoDAO(); funciona normalmente, porém quando eu adiciono o ContatoDAO ele me fornece esse 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: An exception occurred processing JSP page /lista-scriptlet.jsp at line 6

3:


    4: <%
    5:
    6: ContatoDAO dao = new ContatoDAO();
    7:
    8: int numero = 4;
    9:

    Stacktrace:
    org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:505)
    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.sql.SQLException: com.mysql.jdbc.Driver
    org.apache.jasper.runtime.PageContextImpl.doHandlePageException(PageContextImpl.java:862)
    org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:791)
    org.apache.jsp.lista_002dscriptlet_jsp._jspService(lista_002dscriptlet_jsp.java:80)
    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.sql.SQLException: com.mysql.jdbc.Driver
    br.com.estudo.conexao.AbreConexao.getConnection(AbreConexao.java:14)
    br.com.estudo.dao.ContatoDAO.(ContatoDAO.java:18)
    org.apache.jsp.lista_002dscriptlet_jsp._jspService(lista_002dscriptlet_jsp.java:61)
    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)

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

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

    Apache Tomcat/6.0.20

minhas classes e pacotes eu já conferi, sem problemas, não sei porque está dando esse problema agora.
todos os pacotes foram importados com ctrl+espaço
Os pacotes e as classes invocadas existem.
é alguma outra configuração do eclipse que eu deixei passar reto?

6 Respostas

M

onde estão essas classes que você criou? em qual pasta? esta usando alguma IDE?

caso não esteja usando IDE, vai na pasta do projeto (pelo dos) e da um “tree/F” sem aspas

A

Estou utilizando o Eclipse.

Minhas pastas estão em Java Resource: src

estão os 3 pacotes:

Pacote: br.com.estudos.bean
classe ContatoBean.java

Pacote: br.com.estudos.conexao
classe AbreConexao.java

Pacote: br.com.estudos.dao
classe ContatoDAO.java

já adicionei o mysql conector no meu libraries

tem alguma coisa erradao? T_T

ContatoBean
package br.com.estudo.bean;

public class ContatoBean {
	
	private String nome;
	private String email;
	private int idade;
	
	public String getNome() {
		return nome;
	}
	public void setNome(String nome) {
		this.nome = nome;
	}
	public String getEmail() {
		return email;
	}
	public void setEmail(String email) {
		this.email = email;
	}
	public int getIdade() {
		return idade;
	}
	public void setIdade(int idade) {
		this.idade = idade;
	}

}
AbreConexao
package br.com.estudo.conexao;

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

public class AbreConexao {
	
	public static Connection getConnection() throws SQLException{
		try{
			Class.forName("com.mysql.jdbc.Driver");
			return DriverManager.getConnection("jdbc:mysql://localhost:3306/contato","root","");
		} catch (ClassNotFoundException e) {
			throw new SQLException(e.getMessage());
		}
	}

}
ContatoDAO
package br.com.estudo.dao;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;

import br.com.estudo.bean.ContatoBean;
import br.com.estudo.conexao.AbreConexao;

public class ContatoDAO {
	
	private Connection con;
	
	public ContatoDAO() throws SQLException{
		this.con = AbreConexao.getConnection();
	}
	
	public void adicionaConato(ContatoBean cb) throws SQLException{
		String sql = "insert into contato values (?,?,?)";
		PreparedStatement stmt = this.con.prepareStatement(sql);
		
		stmt.setString(1, cb.getNome());
		stmt.setString(2, cb.getEmail());
		stmt.setInt(3, cb.getIdade());
		
		stmt.execute();
		stmt.close();
	}
	
	public List<ContatoBean> listaContato() throws SQLException{
		PreparedStatement stmt = this.con.prepareStatement("select * from contato");
		ResultSet rs = stmt.executeQuery();
		
		List<ContatoBean> lista = new ArrayList<ContatoBean>();
		
		while(rs.next()){
			ContatoBean cb = new ContatoBean();
			cb.setNome(rs.getString("nome"));
			cb.setEmail(rs.getString("email"));
			cb.setIdade(rs.getInt("idade"));
			
			lista.add(cb);
		}
		
		stmt.close();
		rs.close();
		
		return lista;
	}

}

tem alguma coisa errada por aí? T_T

A

não consigo importar o DAO nem a pau, consigo importar minha conexão e meu bean sem dar qualquer tipo de problema, mas o dao não >_>
q raiva ^^

R

Cara, tá dando esse erro justamente porque tá certo. O problema não está no import ou na instanciação da classe na página, o problema está no seu dao porque tá dando um SQLException.
Dá uma olhada no seu dao e testa ele pra ver o que tá acontecendo.

G

Mais especificamente o erro está no GetConnection.

O MySQL está no ar, com o BD criado?

Dê uma olhada no log do Tomcat, deve ter continuação desse stack trace (talvez mais alguma “root cause”).

A

Problema resolvido pessoal, não havia qualquer problema na classe, o problema no eclipse era que ele não estava ativando, ou não estava se disponibilizando do jar mesmo depois de importado. O maior_abandonado encontrou o erro e me ensinou como fazer para que funcione.

Dentro do eclipse, clique em cima do projeto com o bt direito e vá em propriedades.

Em Java EE Module Dependency selecione o jar e aperte apply.

assim tudo se resolve!!

Flw pessoal!

-Tópico fechado-

Criado 21 de setembro de 2009
Ultima resposta 24 de set. de 2009
Respostas 6
Participantes 4