Apostila Caelum - Duvidas - Java para Web

Ae pessoal, para evitar de criar muitos topicos toda vez que eu tiver uma duvida … vou criar esse topico. Minha experiencia em java nao eh muito grande, antes eu programava em php, dephi e c/c++

Entao se eu fizer algumas perguntas idiotas, relevem :slight_smile:

primeiramente vou explicar a estrutura do projeto. por enquanto existem 4 pacotes br.com.bernardo.jdbc, br.com.bernardo.jdbc.dao, br.com.bernardo.jdbc.modelo e br.com.bernardo.servlet.

  • no pacote br.com.bernardo.jdbc existe a classe ConnectionFactory e algumas classes de teste
  • no pacote br.com.bernardo.jdbc.dao existe a classe AlunoDAO (essa classe faz o acesso ao banco) e alguns testes
  • no pacote br.com.bernardo.jdbc.modelo exite a classe Aluno essa classe eh o modelo da tabela (aluno) na qual estou fazendo os testes com todos os getters e setters
  • no pacote br.com.bernardo.servlet tem alguns servlets de teste

existe uma pasta web que tem os arquivos .jsp e dentro da pasta web tem a pasta WEB-INF que tem o arquivo web.xml que faz o mapeamento dos servlets.

ok. minha primeira pergunta.

estou tendo para exibir a tabela aluno (com os campos: id, nome, escola e endereco) do banco usando jsp. criei um arquivo dentro da pasta web com o nome: lista-scriptlet.jsp

[code]<%@ page import=“java.util.,br.com.bernardo.jdbc.,br.com.bernardo.jdbc.dao.,br.com.bernardo.jdbc.modelo.” %>

    <% AlunoDAO dao = new AlunoDAO(); List alunos = dao.getLista(); for (int i = 0; i < alunos.size(); i++ ) { Aluno aluno = (Aluno) alunos.get(i); %>
  • <%=aluno.getNome()%>, <%=aluno.getEscola()%>: <%=aluno.getEndereco()%>
  • <% } %>
[/code]

mas estou recebendo essa mensagem de erro

[quote]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: /lista-scriptlet.jsp:4

1: <%@ page import=“java.util.,br.com.bernardo.jdbc.,br.com.bernardo.jdbc.dao.,br.com.bernardo.jdbc.modelo.” %>
2:


    3: <%
    4: AlunoDAO dao = new AlunoDAO();
    5: List alunos = dao.getLista();
    6: for (int i = 0; i < alunos.size(); i++ ) {
    7: Aluno aluno = (Aluno) alunos.get(i);

    Stacktrace:
    org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:467)
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:371)
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:315)
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:265)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:803)

    root cause

    javax.servlet.ServletException: com.mysql.jdbc.Driver
    org.apache.jasper.runtime.PageContextImpl.doHandlePageException(PageContextImpl.java:846)
    org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:779)
    org.apache.jsp.lista_002dscriptlet_jsp._jspService(lista_002dscriptlet_jsp.java:76)
    org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:98)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:328)
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:315)
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:265)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:803)

    root cause

    java.sql.SQLException: com.mysql.jdbc.Driver
    br.com.bernardo.jdbc.ConnectionFactory.getConnection(ConnectionFactory.java:16)
    br.com.bernardo.jdbc.dao.AlunoDAO.(AlunoDAO.java:23)
    org.apache.jsp.lista_002dscriptlet_jsp._jspService(lista_002dscriptlet_jsp.java:50)
    org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:98)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:328)
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:315)
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:265)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:803)

    note The full stack trace of the root cause is available in the Apache Tomcat/5.5.23 logs.
    Apache Tomcat/5.5.23[/quote]

    alguem pode me dar uma luz?

    []'s

O Driver de conexão…??Vc colocou no classpath?

sim, eu jah adicionei o driver do mysql (mysql-connector-java-5.1.5-bin)

edit: tanto que jah fiz classes de teste para inserir, alterar, deletar etc e etc

as alteracoes no banco tao blz nos .java … agora nao ta funcionando eh esse scriptlet :confused:

Cara o Stacktrace te diz muita coisa…

[quote] java.sql.SQLException: com.mysql.jdbc.Driver
br.com.bernardo.jdbc.ConnectionFactory.getConnection(ConnectionFactory.java:16)
br.com.bernardo.jdbc.dao.AlunoDAO.(AlunoDAO.java:23)
org.apache.jsp.lista_002dscriptlet_jsp._jspService(lista_002dscriptlet_jsp.java:50)[/quote]

Aparentemente, parece erro no Driver de conexão…mas como vc já fez os testes então deve está ok.
Se vc ver na segunda linha o erro está no método ConnectionFactory.getConnection() que foi chamado pelo AlunoDAO. Coloca um breakpoint vai debugando que vc consegue achar o problema.

Amigo tenta colocar o drive
dentro do
commons lib do tomcatr
eu tinha esse problema ai coloquei o drive ai resolveu;