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

13 respostas
Grayson

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

13 Respostas

Grayson

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.

kilate

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!

Grayson

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);
	}
}

}

kilate

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!

Grayson

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

brunogalvaods

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

Abç

Grayson

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

mcirqueira

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

brunogalvaods

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í.

Grayson

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

M

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

Grayson

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());

Grayson

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:

Criado 25 de janeiro de 2012
Ultima resposta 26 de jan. de 2012
Respostas 13
Participantes 5