[RESOLVIDO]Exercicio Caelum fj-21 5.9 me ajuda por favor

Oi pessoal me chamo Grayson e sou novo aqui no forum, e também no aprendizado da linguagem java para web, estava estudando a apostila da caelum fj-21 e quando chegou no exércicio 5.9 testei e primeiramente não achava os drivers de conexão, resolvi esse problema, e logo depois disso quando fui startar meu tomcat ele não starta(inicia), não consegui entender o porque, me ajudem ai por favor.

log(console) do tomcat

25/01/2012 18:31:17 org.apache.catalina.core.AprLifecycleListener init
INFO: The APR based Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path: C:\Program Files (x86)\Java\jre6\bin;C:\Windows\Sun\Java\bin;C:\Windows\system32;C:\Windows;C:/Program Files (x86)/Java/jre6/bin/client;C:/Program Files (x86)/Java/jre6/bin;C:/Program Files (x86)/Java/jre6/lib/i386;C:\Program Files\Common Files\Microsoft Shared\Windows Live;C:\Program Files (x86)\Common Files\Microsoft Shared\Windows Live;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0;C:\Program Files (x86)\Windows Live\Shared;C:\Program Files (x86)\QuickTime\QTSystem;C:\eclipse;;.
25/01/2012 18:31:18 org.apache.tomcat.util.digester.SetPropertiesRule begin
AVISO: [SetPropertiesRule]{Server/Service/Engine/Host/Context} Setting property ‘source’ to ‘org.eclipse.jst.jee.server:fj21-agenda’ did not find a matching property.
25/01/2012 18:31:19 org.apache.coyote.AbstractProtocol init
INFO: Initializing ProtocolHandler [“http-bio-8080”]
25/01/2012 18:31:19 org.apache.coyote.AbstractProtocol init
INFO: Initializing ProtocolHandler [“ajp-bio-8009”]
25/01/2012 18:31:19 org.apache.catalina.startup.Catalina load
INFO: Initialization processed in 2228 ms
25/01/2012 18:31:19 org.apache.catalina.core.StandardService startInternal
INFO: Starting service Catalina
25/01/2012 18:31:19 org.apache.catalina.core.StandardEngine startInternal
INFO: Starting Servlet Engine: Apache Tomcat/7.0.25
25/01/2012 18:31:19 org.apache.catalina.util.SessionIdGenerator createSecureRandom
INFO: Creation of SecureRandom instance for session ID generation using [SHA1PRNG] took [145] milliseconds.
25/01/2012 18:31:19 org.apache.catalina.loader.WebappClassLoader validateJarFile
INFO: validateJarFile(C:\workspace.metadata.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps\fj21-agenda\WEB-INF\lib\servlet-api.jar) - jar not loaded. See Servlet Spec 2.3, section 9.7.2. Offending class: javax/servlet/Servlet.class
25/01/2012 18:31:20 org.apache.catalina.core.ContainerBase startInternal
GRAVE: A child container failed during start
java.util.concurrent.ExecutionException: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost].StandardContext[/fj21-agenda]]
at java.util.concurrent.FutureTask$Sync.innerGet(Unknown Source)
at java.util.concurrent.FutureTask.get(Unknown Source)
at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:1130)
at org.apache.catalina.core.StandardHost.startInternal(StandardHost.java:782)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1568)
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1558)
at java.util.concurrent.FutureTask$Sync.innerRun(Unknown Source)
at java.util.concurrent.FutureTask.run(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
Caused by: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost].StandardContext[/fj21-agenda]]
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:154)
… 7 more
Caused by: java.lang.IllegalArgumentException: Servlet mapping specifies an unknown servlet name AdicionaContato
at org.apache.catalina.core.StandardContext.addServletMapping(StandardContext.java:3204)
at org.apache.catalina.core.StandardContext.addServletMapping(StandardContext.java:3183)
at org.apache.catalina.deploy.WebXml.configureContext(WebXml.java:1302)
at org.apache.catalina.startup.ContextConfig.webConfig(ContextConfig.java:1239)
at org.apache.catalina.startup.ContextConfig.configureStart(ContextConfig.java:825)
at org.apache.catalina.startup.ContextConfig.lifecycleEvent(ContextConfig.java:300)
at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:119)
at org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:90)
at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5161)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
… 7 more
25/01/2012 18:31:20 org.apache.catalina.core.ContainerBase startInternal
GRAVE: A child container failed during start
java.util.concurrent.ExecutionException: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost]]
at java.util.concurrent.FutureTask$Sync.innerGet(Unknown Source)
at java.util.concurrent.FutureTask.get(Unknown Source)
at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:1130)
at org.apache.catalina.core.StandardEngine.startInternal(StandardEngine.java:293)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
at org.apache.catalina.core.StandardService.startInternal(StandardService.java:443)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
at org.apache.catalina.core.StandardServer.startInternal(StandardServer.java:727)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
at org.apache.catalina.startup.Catalina.start(Catalina.java:646)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:322)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:450)
Caused by: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost]]
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:154)
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1568)
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1558)
at java.util.concurrent.FutureTask$Sync.innerRun(Unknown Source)
at java.util.concurrent.FutureTask.run(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
Caused by: org.apache.catalina.LifecycleException: A child container failed during start
at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:1138)
at org.apache.catalina.core.StandardHost.startInternal(StandardHost.java:782)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
… 7 more
25/01/2012 18:31:20 org.apache.catalina.startup.Catalina start
GRAVE: Catalina.start:
org.apache.catalina.LifecycleException: Failed to start component [StandardServer[8005]]
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:154)
at org.apache.catalina.startup.Catalina.start(Catalina.java:646)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:322)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:450)
Caused by: org.apache.catalina.LifecycleException: Failed to start component [StandardService[Catalina]]
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:154)
at org.apache.catalina.core.StandardServer.startInternal(StandardServer.java:727)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
… 7 more
Caused by: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina]]
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:154)
at org.apache.catalina.core.StandardService.startInternal(StandardService.java:443)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
… 9 more
Caused by: org.apache.catalina.LifecycleException: A child container failed during start
at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:1138)
at org.apache.catalina.core.StandardEngine.startInternal(StandardEngine.java:293)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
… 11 more
25/01/2012 18:31:20 org.apache.catalina.startup.Catalina start
INFO: Server startup in 802 ms

Consegui fazer o tomcat iniciar, mas agora voltou a dar erro de que ele não está achando o drive de conexão do mysql, me ajudem please.

Olá Grayson,

Tente registrar o Driver em seu ConnectionFactory.

Coloque:

Class.forName("org.mysql.jdbc.Driver");

Antes da linha:

Connection cnn = DriverManager.getConnection("jdbc:mysql://localhost/banco", "root", """);

Abraços!

Já tentei tb não dá naum, no meu caso a minha fabrica de conexão tá assim

package br.com.caelum.jdbc;

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

public class ConnectionFactory {

public Connection getConnection() {
	
	System.out.println("Conectando ao Banco");
	try {
		return DriverManager.getConnection("jdbc:mysql://localhost/cadastro","root","123456");
	} catch (SQLException e) {
		throw new RuntimeException(e);
	}
}

}

Configurou o jar do mysql na build path? Caso não, clique com o botão direito no projeto na aba libraries clique em ADD JAR e procure o jar dentro da pasta WEB-INF/lib. Outra coisa, você definiu a senha no mysql? Porque o padrão é vazio.

De qualquer forma, posta aqui o erro que deu.

Abraços!

Tipo já fiz isso dá mais continua dando o mesmo erro…

HTTP Status 500 -

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/cadastro
br.com.caelum.jdbc.ConnectionFactory.getConnection(ConnectionFactory.java:16)
br.com.caelum.jbc.modelo.ContatoDao.(ContatoDao.java:21)
br.com.caelum.servlet.AdicionaContatoServlet.service(AdicionaContatoServlet.java:58)
javax.servlet.http.HttpServlet.service(HttpServlet.java:722)

root cause

java.sql.SQLException: No suitable driver found for jdbc:mysql://localhost/cadastro
java.sql.DriverManager.getConnection(Unknown Source)
java.sql.DriverManager.getConnection(Unknown Source)
br.com.caelum.jdbc.ConnectionFactory.getConnection(ConnectionFactory.java:14)
br.com.caelum.jbc.modelo.ContatoDao.(ContatoDao.java:21)
br.com.caelum.servlet.AdicionaContatoServlet.service(AdicionaContatoServlet.java:58)
javax.servlet.http.HttpServlet.service(HttpServlet.java:722)

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

Grayson, copia o .jar do drive do mysql pra pasta lib do tomcat pra vê se dá certo.

Abç

Já tentei colocar dentro da lib do apache mais não dá aparece sinal de proibido

Cara, eu não programo em web, só em desktop, mas você já programou em Java SE?

Grayson, copia o .jar do mysql pra dentro da pasta lib do tomcat, sem ser pelo eclipse, copia na “mão” mesmo. Vai na pasta do tomcat/lib e cola lá, depois dá um refresh no projeto, vê se dá certo aí.

Não programei em Java SE.
E bruno tentei isso agora também e não deu, rescrevi a classe AdicionaContatoServlet, o problema acho que tá dando tb é erro de conexão na connection Factory…

26/01/2012 18:10:33 org.apache.catalina.core.AprLifecycleListener init
INFO: The APR based Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path: C:\Program Files (x86)\Java\jre6\bin;C:\Windows\Sun\Java\bin;C:\Windows\system32;C:\Windows;C:/Program Files (x86)/Java/jre6/bin/client;C:/Program Files (x86)/Java/jre6/bin;C:/Program Files (x86)/Java/jre6/lib/i386;C:\Program Files\Common Files\Microsoft Shared\Windows Live;C:\Program Files (x86)\Common Files\Microsoft Shared\Windows Live;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0;C:\Program Files (x86)\Windows Live\Shared;C:\Program Files (x86)\QuickTime\QTSystem;C:\eclipse;;.
26/01/2012 18:10:34 org.apache.tomcat.util.digester.SetPropertiesRule begin
AVISO: [SetPropertiesRule]{Server/Service/Engine/Host/Context} Setting property ‘source’ to ‘org.eclipse.jst.jee.server:fj21-agenda’ did not find a matching property.
26/01/2012 18:10:34 org.apache.coyote.AbstractProtocol init
INFO: Initializing ProtocolHandler [“http-bio-8080”]
26/01/2012 18:10:34 org.apache.coyote.AbstractProtocol init
INFO: Initializing ProtocolHandler [“ajp-bio-8009”]
26/01/2012 18:10:34 org.apache.catalina.startup.Catalina load
INFO: Initialization processed in 512 ms
26/01/2012 18:10:34 org.apache.catalina.core.StandardService startInternal
INFO: Starting service Catalina
26/01/2012 18:10:34 org.apache.catalina.core.StandardEngine startInternal
INFO: Starting Servlet Engine: Apache Tomcat/7.0.25
26/01/2012 18:10:34 org.apache.catalina.loader.WebappClassLoader validateJarFile
INFO: validateJarFile(C:\workspace.metadata.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps\fj21-agenda\WEB-INF\lib\servlet-api.jar) - jar not loaded. See Servlet Spec 2.3, section 9.7.2. Offending class: javax/servlet/Servlet.class
26/01/2012 18:10:34 org.apache.coyote.AbstractProtocol start
INFO: Starting ProtocolHandler [“http-bio-8080”]
26/01/2012 18:10:34 org.apache.coyote.AbstractProtocol start
INFO: Starting ProtocolHandler [“ajp-bio-8009”]
26/01/2012 18:10:34 org.apache.catalina.startup.Catalina start
INFO: Server startup in 574 ms
Conectando ao Banco
26/01/2012 18:10:46 org.apache.catalina.core.StandardWrapperValve invoke
GRAVE: Servlet.service() for servlet [servletAdicionaContato] in context with path [/fj21-agenda] threw exception
java.lang.RuntimeException: java.sql.SQLException: No suitable driver found for jdbc:mysql://localhost/cadastro
at br.com.caelum.jdbc.ConnectionFactory.getConnection(ConnectionFactory.java:16)
at br.com.caelum.jbc.modelo.ContatoDao.(ContatoDao.java:21)
at br.com.caelum.servlet.AdicionaContatoServlet.service(AdicionaContatoServlet.java:55)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:224)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:169)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:168)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:98)
at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:927)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407)
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:987)
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:579)
at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:307)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
Caused by: java.sql.SQLException: No suitable driver found for jdbc:mysql://localhost/cadastro
at java.sql.DriverManager.getConnection(Unknown Source)
at java.sql.DriverManager.getConnection(Unknown Source)
at br.com.caelum.jdbc.ConnectionFactory.getConnection(ConnectionFactory.java:14)
… 19 more

Tá ossu

Connection cnn = DriverManager.getConnection(“jdbc:mysql:3306//localhost/banco”, “root”, “”");

Nossaaaaaaaa até que fim, tipo procurei em outros sites tb e encontrei um cara com exatamente o mesmo problema e o no caso ele registrou o driver com a seguinte linha de código DriverManager.registerDriver(new com.mysql.jdbc.Driver());

ai minha classe de conexão ficou assim.

package br.com.caelum.jdbc;

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

public class ConnectionFactory {

public Connection getConnection() {
	
	System.out.println("Conectando ao Banco");
	try {
		DriverManager.registerDriver(new com.mysql.jdbc.Driver()); //Essa linha foi a diferença
		return DriverManager.getConnection("jdbc:mysql://localhost/cadastro","root","123456");
	} catch (SQLException e) {
		throw new RuntimeException(e);
	}
}

}

li na apostila que a na versão 6 do java não precisava de registrar, estranho isso!!
Mas de qualquer forma Obrigado a todos que me ajudaram, isso ajuda a construir mais conhecimento do que com a facilidade neah :slight_smile: