Problemas no Exercicio Caelum FJ21

E ae galera,

É o seguinte, estou seguindo a apostila FJ21 e parei no exercicio 7.4.
Não possuo o .zip sugerido mas possuo o projeto jdbc criado nos primeiros capitulos do tutorial.

O que tentei fazer (e não deu certo):
-Botão direito no projeto jdbc e clicar em Export
-Escolher a opção JAR File
-Flagar todos os pacotes e .classpath e .project (exceção do br.com.caelum.jdbc.teste).
-Deixa flagado apenas a opção “Export Java source files and resources”.
-Finalizar Exportação.

Em seguida eu parto para a tarefa de importação
-Sigo os passos do tutorial porém quando se vai escolher o .zip na opção Into Folder eu escolho para o arquivo ser colocado em “jspteste/src”
-Vou em Build Path, Add External Jar File e escolho o driver do mysql (“mysql-connector-java-5.1.7-bin.jar”).

Então, após seguir todos estes passos, tento executar o “lista-scriptlet.jsp” no servidor e obtenho as seguintes exceções:

[color=red]SITE[/color]

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: javax.servlet.ServletException: java.sql.SQLException: com.mysql.jdbc.Driver
	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.sql.SQLException: com.mysql.jdbc.Driver
	org.apache.jasper.runtime.PageContextImpl.doHandlePageException(PageContextImpl.java:852)
	org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:781)
	org.apache.jsp.lista_002dscriptlet_jsp._jspService(lista_002dscriptlet_jsp.java:98)
	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.caelum.jdbc.ConnectionFactory.getConnection(ConnectionFactory.java:16)
	br.com.caelum.jdbc.dao.ContatoDAO.<init>(ContatoDAO.java:19)
	org.apache.jsp.lista_002dscriptlet_jsp._jspService(lista_002dscriptlet_jsp.java:69)
	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.18 logs.


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

Apache Tomcat/6.0.18[/code]

[b][color=red]CONSOLE[/color][/b]

[code]INFO: Server startup in 744 ms
03/06/2009 16:43:11 org.apache.catalina.core.StandardWrapperValve invoke
SEVERE: Servlet.service() for servlet jsp threw exception
java.sql.SQLException: com.mysql.jdbc.Driver
	at br.com.caelum.jdbc.ConnectionFactory.getConnection(ConnectionFactory.java:16)
	at br.com.caelum.jdbc.dao.ContatoDAO.<init>(ContatoDAO.java:19)
	at org.apache.jsp.lista_002dscriptlet_jsp._jspService(lista_002dscriptlet_jsp.java:69)
	at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
	at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:374)
	at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:342)
	at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:267)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:286)
	at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:845)
	at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
	at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
	at java.lang.Thread.run(Thread.java:619)

[color=red]JSP[/color]

[code]<%@ page import=“java.util., br.com.caelum.jdbc., java.sql.,
br.com.caelum.jdbc.dao.
, br.com.caelum.jdbc.modelo.*”
language=“java” contentType=“text/html; charset=ISO-8859-1”
pageEncoding=“ISO-8859-1”%>

Testando Scriptlet de Lista
    <% ContatoDAO dao = new ContatoDAO(); List contatos = dao.getLista();
	for (Contato contato: contatos) {
	%>
	
		<li><%=contato.getNome()%>, <%=contato.getEmail()%>:
			<%=contato.getEndereco()%></li>
	<%
	}
	%>
</ul>
[/code]

É valido mencionar que o ContatoDAO funciona perfeitamente em aplicação java normal.

Alguém saberia me dizer o que está ocorrendo :?:

Muito obrigado,
metanolbr :wink:

ola!

vc precisa jogar o jar do mysql na pasta WEB-INF/lib.
senao funciona desktop mas nao qdo o projeto eh web.

na web, todo jar vc joga no WEB-INF/lib

[]'s
sergio

[quote=Sergio Lopes]ola!

vc precisa jogar o jar do mysql na pasta WEB-INF/lib.
senao funciona desktop mas nao qdo o projeto eh web.

na web, todo jar vc joga no WEB-INF/lib

[]'s
sergio[/quote]

Salvador! Funcionou aqui, rs… :smiley:

Aproveitando, só me tira mais 1 dúvida. O que fiz foi ir no Windows Explorer copiar o .jar do driver e ir na lib (pelo Windows Explorer tb) e colar lá. Teria um jeito de faze-lo pelo Eclipse? Tentei dar Import mas ai ele não coloca o .jar, na verdade ele descompacta o .jar . Pensei em ir pelo Build Path mas esta opção também não fica disponível clicando na pasta lib. E então, há um outro jeito?

Novamente, MUITO OBRIGADO!

Amplexos,
metanolbr :wink:

Ja achei o erro, que eu havia postado, escrevi “tablib” ao inves de “taglib”, rs… mas minha duvida acima (referente há uma maneira de copiar os jars através do eclipse) permanece.

Amplexos,

metanolbr

Só copiar o arquivo e colar no Eclipse… ctrl+c, ctrl+v mesmo

Beleza.

Obrigado mais uma vez Sergio.

Amplexos,
metanolbr

Pessoal fiz a mesma coisa que vcs orientam mais apresenta erro na hora de testar pela web

type Exception report

message

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

exception

java.lang.RuntimeException: java.sql.SQLException: No suitable driver found for jdbc:mysql://localhost/fj21
br.com.estudos.jdbc.ConnectionFactory.getConnection(ConnectionFactory.java:21)
br.com.estudos.DAO.ContatoDAO.(ContatoDAO.java:24)
br.com.estudos.servlet.AdicionaContatoServlet.service(AdicionaContatoServlet.java:57)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)

root cause

java.sql.SQLException: No suitable driver found for jdbc:mysql://localhost/fj21
java.sql.DriverManager.getConnection(Unknown Source)
java.sql.DriverManager.getConnection(Unknown Source)
br.com.estudos.jdbc.ConnectionFactory.getConnection(ConnectionFactory.java:16)
br.com.estudos.DAO.ContatoDAO.(ContatoDAO.java:24)
br.com.estudos.servlet.AdicionaContatoServlet.service(AdicionaContatoServlet.java:57)
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.24 logs.

Pessoal só consegui colando o driver dentro do lib do TOMCAT

Comigo aconteceu o mesmo. Só funcionou quando eu coloquei o jar no lib do tomcat.