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

16 respostas
J

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".
<html>
<body>
<h2>Olá mundo com Spring MVC!</h2>

Acontece que quando tento acessar o controlador recebo essa mensagem de erro. = /

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.

16 Respostas

A

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.

J

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…

A

como esta seu arquivo spring-context.xml ?

J

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

Vou pesquisar um pouco e fazer.

J

Criei e o arquivo com este código.

O mesmo erro continua acontecendo... tenso...

<?xml version="1.0" encoding="UTF-8"?>  
  
<beans xmlns="http://www.springframework.org/schema/beans"  
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context"  
    xmlns:mvc="http://www.springframework.org/schema/mvc"  
    xsi:schemaLocation="http://www.springframework.org/schema/mvc  
http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd  
http://www.springframework.org/schema/beans  
http://www.springframework.org/schema/beans/spring-beans-3.0.xsd  
http://www.springframework.org/schema/context  
http://www.springframework.org/schema/context/spring-context-3.0.xsd">  
    <context:component-scan base-package="br.com.caelum.tarefas.controller" />  
    <mvc:annotation-driven />  
    <bean  
        class="org.springframework.web.servlet.view.InternalResourceViewResolver">  
        <property name="prefix" value="/WEB-INF/views/" />  
        <property name="suffix" value=".jsp" />  
    </bean>  
</beans>
A

posta o log de erro da console!!

J
aprendizweb:
posta o log de erro da console!!

A página no browser mostra a mensagem abaixo.

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

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
A

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

J

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

Valeu mano.

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

A

Blz!!! agora vai!!!

B

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

F

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.

J

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

J

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

F

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

B

:grinning:

Criado 22 de outubro de 2012
Ultima resposta 2 de fev. de 2017
Respostas 16
Participantes 7