[Resolvido] Curso FJ-21 Caelum Exercício 11.7 : Configurando o Spring MVC

Caros companheiros cá estou eu em minha empreitada aprendendo a falar o javanes.

Estou estudando pela apostila da Caelum e enfretando uma pequena dificuldade no exercício 11.7.

No Exercício foi criado um projeto “Dynamic web module” no eclipse Helios.

Os arquivos .jar que estou usando foram todos baixandos no site: http://www.java2s.com/Code/Jar/m/Catalogm.htm

aopalliance-1.x.jar
jcl-over-slf4j-1.6.x.jar
joda-time-2.x.jar
log4j-1.2.x.jar
slf4j-api-1.6.x.jar
slf4j-log4j12-1.6.x.jar
mysql-connector-java-5.x.x.jar
spring-web-3.x.x.jar
spring-webmvc-3.x.x.RELEASE.jar
spring-asm-3.x.x.RELEASE.jar
spring-aop-3.x.x.RELEASE.jar
spring-beans-3.x.x.RELEASE.jar
spring-context-3.x.x.RELEASE.jar
spring-context-support-3.x.x.RELEASE.jar
spring-core-3.x.x.RELEASE.jar
spring-expression-3.x.x.RELEASE.jar

Foi adicionado no web.xml o código abaixo:

<servlet> <servlet-name>springmvc</servlet-name> <servlet-class> org.springframework.web.servlet.DispatcherServlet </servlet-class> <init-param> <param-name>contextConfigLocation</param-name> <param-value> /WEB-INF/spring-context.xml </param-value> </init-param> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>springmvc</servlet-name> <url-pattern>/</url-pattern> </servlet-mapping>

Foi criada uma classe OlaMundoController:

@Controller public class OlaMundoController { @RequestMapping("/olaMundoSpring") public String execute() { System.out.println("Executando a lógica com Spring MVC"); return "ok"; } }

E uma página jsp simples para exibir “Ola Mundo”.

[code]

Olá mundo com Spring MVC!

[/code]

Acontece que quando tento acessar o controlador recebo 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

javax.servlet.ServletException: Servlet.init() for servlet springmvc threw exception
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293)
org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:859)
org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:602)
org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
java.lang.Thread.run(Unknown Source)

root cause

java.lang.NoSuchMethodError: org.slf4j.spi.LocationAwareLogger.log(Lorg/slf4j/Marker;Ljava/lang/String;ILjava/lang/String;[Ljava/lang/Object;Ljava/lang/Throwable; )V
org.apache.commons.logging.impl.SLF4JLocationAwareLog.debug(SLF4JLocationAwareLog.java:133)
org.springframework.web.servlet.HttpServletBean.init(HttpServletBean.java:109)
javax.servlet.GenericServlet.init(GenericServlet.java:212)
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293)
org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:859)
org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:602)
org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
java.lang.Thread.run(Unknown Source)

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

Bom pelo o que parece a biblioteca slf4j-log4j12-1.6.x.jar é necessária quando se configura um arquivo log4j.properties para identificar erros, então se vc não configurou o arquivo no projeto então delete a mesma, e tente executar novamente o projeto.

Resolveu o problema :slight_smile:

Mas apareceu outro :frowning:

22/10/2012 18:06:43 org.apache.catalina.core.StandardWrapperValve invoke
INFO: Servlet springmvc is currently unavailable

Acho que esta tudo certo com web.xml… Algum problema com outra biblioteca…

como esta seu arquivo spring-context.xml ?

Seguindo o passo-a-passo do curso… não cheguei a criar nenhum arquivo spring-context.xml.

Vou pesquisar um pouco e fazer.

Criei e o arquivo com este código.

O mesmo erro continua acontecendo… tenso…

[code]

<?xml version="1.0" encoding="UTF-8"?>


<context:component-scan base-package=“br.com.caelum.tarefas.controller” />
<mvc:annotation-driven />




[/code]

posta o log de erro da console!!

[quote=aprendizweb]posta o log de erro da console!!
[/quote]

A página no browser mostra a mensagem abaixo.

[code]HTTP Status 404 - /fj21-tarefas/olaMundoSpring

type Status report

message /fj21-tarefas/olaMundoSpring

description The requested resource (/fj21-tarefas/olaMundoSpring) is not available.
Apache Tomcat/6.0.35[/code]

Pelo que vi não gerou log de erro, mas estou colocando o log do Tomcat mesmo assim.

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\Java\jre6\bin;C:\Windows\Sun\Java\bin;C:\Windows\system32;C:\Windows;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\TortoiseSVN\bin;C:\Program Files\Java%;C:\Program Files (x86)\MySQL\MySQL Server 5.5\bin;PATH=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\TortoiseSVN\bin;C:\Program Files\Java%;C:\Program Files (x86)\MySQL\MySQL Server 5.5\bin;PATH=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\TortoiseSVN\bin;C:\Program Files\Java%;C:\Program Files (x86)\MySQL\MySQL Server 5.5\bin;PATH=C:\Windows\System32;C:\Program Files\Java\jdk1.6.0_30\bin;C:\Program Files (x86)\Android\android-sdk\platform-tools%;C:\Program Files\MySQL\MySQL Server 5.5\bin;C:\Program Files\Java\jdk1.6.0_30\bin;C:\Program Files (x86)\Android\android-sdk\platform-tools%;C:\Program Files\MySQL\MySQL Server 5.5\bin;C:\Program Files\Java\jdk1.6.0_30\bin;C:\Program Files (x86)\Android\android-sdk\platform-tools%;C:\Program Files\MySQL\MySQL Server 5.5\bin;. 23/10/2012 09:02:10 org.apache.tomcat.util.digester.SetPropertiesRule begin AVISO: [SetPropertiesRule]{Server/Service/Engine/Host/Context} Setting property 'source' to 'org.eclipse.jst.jee.server:fj21-tarefas' did not find a matching property. 23/10/2012 09:02:10 org.apache.coyote.http11.Http11Protocol init INFO: Initializing Coyote HTTP/1.1 on http-8080 23/10/2012 09:02:10 org.apache.catalina.startup.Catalina load INFO: Initialization processed in 750 ms 23/10/2012 09:02:10 org.apache.catalina.core.StandardService start INFO: Starting service Catalina 23/10/2012 09:02:10 org.apache.catalina.core.StandardEngine start INFO: Starting Servlet Engine: Apache Tomcat/6.0.35 23/10/2012 09:02:11 org.apache.catalina.startup.HostConfig deployDescriptor INFO: Deploying configuration descriptor host-manager.xml 23/10/2012 09:02:11 org.apache.catalina.startup.HostConfig deployDescriptor INFO: Deploying configuration descriptor manager.xml 23/10/2012 09:02:11 org.apache.catalina.startup.HostConfig deployDirectory INFO: Deploying web application directory docs 23/10/2012 09:02:11 org.apache.catalina.startup.HostConfig deployDirectory INFO: Deploying web application directory examples 23/10/2012 09:02:11 org.apache.catalina.core.ApplicationContext log INFO: ContextListener: contextInitialized() 23/10/2012 09:02:11 org.apache.catalina.core.ApplicationContext log INFO: SessionListener: contextInitialized() 23/10/2012 09:02:11 org.apache.catalina.startup.HostConfig deployDirectory INFO: Deploying web application directory ROOT 23/10/2012 09:02:11 org.apache.coyote.http11.Http11Protocol start INFO: Starting Coyote HTTP/1.1 on http-8080 23/10/2012 09:02:11 org.apache.jk.common.ChannelSocket init INFO: JK: ajp13 listening on /0.0.0.0:8009 23/10/2012 09:02:11 org.apache.jk.server.JkMain start INFO: Jk running ID=0 time=0/29 config=null 23/10/2012 09:02:11 org.apache.catalina.startup.Catalina start INFO: Server startup in 1021 ms

vc criou a página ok.jsp dentro de WebContent/WEB-INF/views ? sendo que a pasta views vc tem que criar.
e só para costar, resolveram o mesmo problema aqui: http://www.guj.com.br/java/276758-caelum-fj21---exercicio-116-spring---erro-404-resolvido
e aqui: http://www.guj.com.br/java/265190-spring-31---hello-world

[quote=aprendizweb]vc criou a página ok.jsp dentro de WebContent/WEB-INF/views ? sendo que a pasta views vc tem que criar.
e só para costar, resolveram o mesmo problema aqui: http://www.guj.com.br/java/276758-caelum-fj21---exercicio-116-spring---erro-404-resolvido
e aqui: http://www.guj.com.br/java/265190-spring-31---hello-world
[/quote]

Valeu mano.

Pelo que pude perceber este problema acontece devido a falta de dos .jars corretos.

Blz!!! agora vai!!!

Colquei todos os jars que precisam no meu github verifica, verificar senão ficou faltando algum

git remote add origin https://github.com/brunoprogramadorjava/arquivosjarcaelumfj21.git

3 curtidas

Orra Brunão, um ano depois ressuscitando o tópico, mas peguei seus jars lá e rodou de boa, tava tomando vários erros de wrapper, meus jars eram de versão anterior. Salvou, valeu.

So consegui com os arq. dos Bruno, vlw parcero!!!

Boa tarde!!! Salve salve. Obrigado pelos arquivos!!!

Valeu bruno, resolveu aqui tambem o meu problema com Start do Tomcat!

:grinning: