Spring 3.1 - Hello World

24 respostas
S

Olá pessoal,

Sou iniciante no uso do Spring Framework. E peguei a ultima GA que é a 3.1 para aprender (ela foi lançada no final do 2011)

1- Criei um um Dynamic Web Project no Eclipse
2- Adicionei o projeto ao Tomcat 6
3- Adicionei o Dispatcher no web.xml
4- Adicionei ao build path as libs:
aop
asm
beans
context
context.support
core
expression
web
web.servlet

5- Criei um hello.jsp no WebContent/WEB-INF/views/hello.jsp
6- Criei o controller:
@Controller
public class OlaMundoController {

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

}

7- Startei o Tomcat.

8- Entrei em http://localhost:8080/strutshello/olaMundoSpring

E estou tendo o erro:
HTTP Status 404 - Servlet Spring MVC Dispatcher Servlet is not available, porém eu adicionei ele no web.xml

Alguém sabe o que fiz de errado?

24 Respostas

M

Cara posta seu web.xml e seu arquivo de configuração do spring (context). Duas coisas que podem estar acontecendo:

[list]Você não habilitou o spring para ler as anotações[/list]
Verifique se o seu arquivo de configuração do spring tem a seguinte linha: mvc:annotation-driven/ Se não tiver, coloque (talvez não esteja mvc:annotation-driven/ mas algo parecido, dependendo de como voce nomeou as tags no seu xml)
[list]Você está usando alguma extensão no web xml (html por exemplo)[/list]
Neste caso você deveria acessar: http://localhost:8080/strutshello/olaMundoSpring.html ao invés de http://localhost:8080/strutshello/olaMundoSpring

S

Olá Melgues,
1- Não sei se habilitei corretamente as anotações, mas já tinha colocado o <mvc:annotation-driven />
2- Estou usando a extensão .jsp, mas testei tanto /olaMundoSpring quanto /olaMundoSpring.jsp e nenhum dos dois funciona. Aparentemente o correto é /olaMundoSpring, já que a mensagem de erro é diferente e ele chama o dispatcher, apesar de falar que ele não está disponível.
Seguem os arquivos pedidos, obrigado!

web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5">
  <display-name>strutshello</display-name>
  <welcome-file-list>
    <welcome-file>index.html</welcome-file>
    <welcome-file>index.htm</welcome-file>
    <welcome-file>index.jsp</welcome-file>
    <welcome-file>default.html</welcome-file>
    <welcome-file>default.htm</welcome-file>
    <welcome-file>default.jsp</welcome-file>
  </welcome-file-list>
  
  <servlet>
    <servlet-name>dispatcher</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    <load-on-startup>1</load-on-startup>
  </servlet>

  <servlet-mapping>
    <servlet-name>dispatcher</servlet-name>
    <url-pattern>/</url-pattern>
  </servlet-mapping>
</web-app>

dispatcher-servlet.xml

<?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.1.xsd
    http://www.springframework.org/schema/beans
    http://www.springframework.org/schema/beans/spring-beans-3.1.xsd
    http://www.springframework.org/schema/context
    http://www.springframework.org/schema/context/spring-context-3.1.xsd">
        
  <context:component-scan base-package="br.com.hello" />
  <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>
M

Cara olhei sua pergunta bem rápido e não prestei atenção nos detalhes. Pela mensagem a impressão é q ele não tá achando o DispatcherServlet. No meu projetinho que estou usando pra estudar o DispatcherServlet fica no seguinte jar Spring-webmvc. Mas é a versão 3.0 (que acho q não muda mto). Mas como vc tá usando o eclipse é fácil: abre o arquivo web.xml aperta CTRL e passe o mouse na linha 15 org.springframework.web.servlet.DispatcherServlet. Se aparecer a mãozinha como se fosse um link é porque o cara tá lá. Se não vc tem q adicionar mais jar (no caso o spring-webmvc).

Se tiver tudo certo ou se tiver errado e vc arrumou mas continuar dando problema sugiro a seguinte alteração no seu web.xml:

altere a linha / para /*

Se mesmo assim o problema persistir peço que faça o seguinte: coloque um breakpoint no método execute de OlaMundoController e execute o tomcat em debug (pelo eclipse). Tente acessar http://localhost:8080/strutshello/olaMundoSpring. Se chegar no breakpoint e msmo assim der pau (coisa q acho q não vai acontecer pois parece q sua configuração tá certinha) poste aqui o erro e fale que chegou até o breakpoint. Se nem chegar no breakpoint o problema ainda tá na configuração do web.xml ou no controller. Poste aqui tb informando q o debug nem chegou a passar pelo breakpoint.

Só mais uma coisa é Melges e não Melgues

S

Desculpe Melges, fiz os testes aqui e estavam faltando alguns JARs mesmo. Obrigado!

B

Estou com o mesmo problema, segue os dois xml

web.xml

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


fj21-tarefas

index.html
index.htm
index.jsp
default.html
default.htm
default.jsp


dispatcher
org.springframework.web.servlet.DispatcherServlet

contextConfigLocation
/WEB-INF/spring-context.xml

1


dispatcher
/


spring-context.xml

<?xml version="1.0" encoding="ISO-8859-1"?>

<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=“caelum.tarefas” />
<mvc:annotation-driven />

R

Amigos.

Eu tive os mesmo problemas ao realizar os exercícios, e corrigi baixando as versões corretas dos arquivos de dependências .jar, conforme está descrito na apostila. Um arquivo que você baixa fora daquela versão e o projeto não funciona.

Sugiro que também configure da forma abaixo o arquivo web.xml:

<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/application-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>

:slight_smile:

A

renatodsvieira:
Amigos.

Eu tive os mesmo problemas ao realizar os exercícios, e corrigi baixando as versões corretas dos arquivos de dependências .jar, conforme está descrito na apostila. Um arquivo que você baixa fora daquela versão e o projeto não funciona.

Sugiro que também configure da forma abaixo o arquivo web.xml:

<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/application-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>

:slight_smile:

Olá renatodsilvieira.

Qual versão do spring vc baixou? Baixei quase todas do site http://springsource.org e ainda não encontrei os jars necessários para continuar estudando a apostila.

Abs!

R

Olá amigo

Sugiro que você baixe a versão 3.0.5

No site www.jarvana.com você localiza todas as dependências (.jar) necessárias para seu projeto

No link abaixo temos todas as dependências:

http://www.jarvana.com/jarvana/search?search_type=project&project=Spring+3.0.5*

Boa sorte

A

renatodsvieira:
Olá amigo

Sugiro que você baixe a versão 3.0.5

No site www.jarvana.com você localiza todas as dependências (.jar) necessárias para seu projeto

No link abaixo temos todas as dependências:

http://www.jarvana.com/jarvana/search?search_type=project&project=Spring+3.0.5*

Boa sorte

Valew pela força cara!

Mas ainda não consegui fazer funcionar, sempre da erro de java.lang.ClassNotFoundException: org.springframework.web.servlet.DispatcherServlet.

Não sei mais o que fazer, o jeito é esperar o curso começar pra poder corrigir isso.

Abs!

G

Como vc adicionou os jars no classpath da sua aplicação?

A

Eu extrai da pasta SRC do Spring, colei na pasta LIB do meu projeto e depois fui no menu Build Path/Add to Build Path. Segue imagem dos Jars:

Valew pela força!

G

Ta usando Tomcat?

A

Tomcat 6.

G

Eu tbm não sei pq, mas acontece do Tomcat não reconhecer referencias do seu classpath. Isso acontecia quando eu utilizava User Libraries. Resolvia quando eu colocava os jar em um folder e referenciava os jar no classpath por lá

A

Ai ferrou…rsrs Pq eu estou iniciando com a apostila FJ21, e vou fazer o curso no próximo fds mas gostaria de treinar antes do curso começar, ai não tenho as manhas com outras ferramentas. :oops:

Mas é possível que tenha alguma solução, não acredito que a Caelum tenha feito uma apostila que o aluno trava no meio do aprendizado.

A

static:
Olá pessoal,

Sou iniciante no uso do Spring Framework. E peguei a ultima GA que é a 3.1 para aprender (ela foi lançada no final do 2011)

1- Criei um um Dynamic Web Project no Eclipse
2- Adicionei o projeto ao Tomcat 6
3- Adicionei o Dispatcher no web.xml
4- Adicionei ao build path as libs:
aop
asm
beans
context
context.support
core
expression
web
web.servlet

5- Criei um hello.jsp no WebContent/WEB-INF/views/hello.jsp
6- Criei o controller:
@Controller
public class OlaMundoController {

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

}

7- Startei o Tomcat.

8- Entrei em http://localhost:8080/strutshello/olaMundoSpring

E estou tendo o erro:
HTTP Status 404 - Servlet Spring MVC Dispatcher Servlet is not available, porém eu adicionei ele no web.xml

Alguém sabe o que fiz de errado?

Ola!
Cara, estou com o mesmo problema que você estava, e ainda não consegui corrigir. Tem como me dar uma dica do que você tenha feito?

Abs!

G

Como está a sua estrutura de diretorios do seu projeto? A pasta lib, com seus jars, está dentro da pasta WEB-INF?

U
andytsunami:
static:
Olá pessoal,

Sou iniciante no uso do Spring Framework. E peguei a ultima GA que é a 3.1 para aprender (ela foi lançada no final do 2011)

1- Criei um um Dynamic Web Project no Eclipse
2- Adicionei o projeto ao Tomcat 6
3- Adicionei o Dispatcher no web.xml
4- Adicionei ao build path as libs:
aop
asm
beans
context
context.support
core
expression
web
web.servlet

5- Criei um hello.jsp no WebContent/WEB-INF/views/hello.jsp
6- Criei o controller:
@Controller
public class OlaMundoController {

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

7- Startei o Tomcat.

8- Entrei em http://localhost:8080/strutshello/olaMundoSpring

E estou tendo o erro:
HTTP Status 404 - Servlet Spring MVC Dispatcher Servlet is not available, porém eu adicionei ele no web.xml

Alguém sabe o que fiz de errado?

Ola!
Cara, estou com o mesmo problema que você estava, e ainda não consegui corrigir. Tem como me dar uma dica do que você tenha feito?

Abs!

gente estava com o mesmo problemas q vcs 2
ai depois de rodar muito, acabei notando q todo material sobre o spring tinha q configurar um arquivo xml e a caelum nao fala nada sobre isso ( certamente esta no arquivo q eles mandam vc importar da area de trabalho)

vou tentar ser o mais claro possível mas se nao conseguir eu peço desculpa porq acabei de conseguir e estou meio eufórico ainda

primeiro baixar o spring framework http://s3.amazonaws.com/dist.springframework.org/release/SPR/spring-framework-3.1.1.RELEASE-with-docs.zip
obs. um erro comum é baixar o arquivo springsource-tool-suite que esta logo na pagina inicial do www.springsource.org mas não é esse q a gente precisa não ( eu tbm fiz isso rsrsrs).
já baixamos o de baixar o spring-framework-3.1.1.RELEASE-with-docs.zip ?
então vamos importar os arquivos para o projeto, copie e cole todas as jars que esta na pasta spring-framework-3.1.1.RELEASE/dist para web-inf/lib
ainda falta um arquivo
va em spring-framework-3.1.1.RELEASE/projects/spring-build/lib/ivy e copie o arquivo commons-logging.jar para a pasta web-inf/lib do nosso projeto

pronto agora sim estamos com todas as jars abaixo é o meu spring-context.xml q criei na pasta web-inf
&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;  
  
&lt;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.1.xsd  
    http://www.springframework.org/schema/beans  
    http://www.springframework.org/schema/beans/spring-beans-3.1.xsd  
    http://www.springframework.org/schema/context  
    http://www.springframework.org/schema/context/spring-context-3.1.xsd"&gt;  

&lt;context:component-scan base-package="br.com.caelum.tarefas.controller" /&gt; 
&lt;mvc:annotation-driven /&gt; 

&lt;bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"&gt; 
&lt;property name="prefix" value="/WEB-INF/views/"/&gt; 
&lt;property name="suffix" value=".jsp"/&gt; 
&lt;/bean&gt; 
&lt;/beans&gt;

esse é meu web.xml

&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;
&lt;web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
	xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
	id="WebApp_ID" version="2.5"&gt;
	&lt;display-name&gt;fj21-tarefas&lt;/display-name&gt;


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

	&lt;welcome-file-list&gt;
		&lt;welcome-file&gt;index.html&lt;/welcome-file&gt;
		&lt;welcome-file&gt;index.htm&lt;/welcome-file&gt;
		&lt;welcome-file&gt;index.jsp&lt;/welcome-file&gt;
		&lt;welcome-file&gt;default.html&lt;/welcome-file&gt;
		&lt;welcome-file&gt;default.htm&lt;/welcome-file&gt;
		&lt;welcome-file&gt;default.jsp&lt;/welcome-file&gt;
	&lt;/welcome-file-list&gt;





&lt;/web-app&gt;

eu estou usando o tomcat 7

F

Galera, estou fazendo a apostila fj21
e na página 131 que trata de Spring MVC pede o arquivo projeto-tarefas.zip

será q alguém tem este arquivo e possa fazer upload ou enviar por email?

estou parado nessa página por n ter este arquivo

:x

já encontrei outro arquivo de mesmo nome mas é o de Struts2

desde já agradeço.

F

Cara eu tava com uns problemas parecidos com spring + tomcat7, ex: javax.naming.NameNotFoundException: Resource /WEB-INF/classes not found
e descobri q o Tomcat 7.0.25 tem um bug
https://issues.apache.org/bugzilla/show_bug.cgi?id=52511

eu mudei o projeto para o tomcat 6.0.35 e funcionou sem nenhuma modificação no projeto.

fica a dica

static:
Olá pessoal,

Sou iniciante no uso do Spring Framework. E peguei a ultima GA que é a 3.1 para aprender (ela foi lançada no final do 2011)

1- Criei um um Dynamic Web Project no Eclipse
2- Adicionei o projeto ao Tomcat 6
3- Adicionei o Dispatcher no web.xml
4- Adicionei ao build path as libs:
aop
asm
beans
context
context.support
core
expression
web
web.servlet

5- Criei um hello.jsp no WebContent/WEB-INF/views/hello.jsp
6- Criei o controller:
@Controller
public class OlaMundoController {

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

}

7- Startei o Tomcat.

8- Entrei em http://localhost:8080/strutshello/olaMundoSpring

E estou tendo o erro:
HTTP Status 404 - Servlet Spring MVC Dispatcher Servlet is not available, porém eu adicionei ele no web.xml

Alguém sabe o que fiz de errado?

U

eu terminei a parte de tarefas e posso postar sim
eu vi uma vez uma pagina que o pessoal do forum gosta muito de postar ne um site (se eu nao me engano é da google) alguem pode me informar esse site ?
parece q esse site é de comum uso do forum

mas de qualquer forma upei no mediafire, depois eu reupo ele no outro site

F

Valeu pelo upload, mas eu já terminei a apostila, eu achei q era pre-requisito mas n,
deu pra importar do outro projeto…

pena q n tem a apostila da Caelum grátis pra JSF

[quote=uohk]eu terminei a parte de tarefas e posso postar sim
eu vi uma vez uma pagina que o pessoal do forum gosta muito de postar ne um site (se eu nao me engano é da google) alguem pode me informar esse site ?
parece q esse site é de comum uso do forum

mas de qualquer forma upei no mediafire, depois eu reupo ele no outro site

L

[quote=FredGeek]Valeu pelo upload, mas eu já terminei a apostila, eu achei q era pre-requisito mas n,
deu pra importar do outro projeto…

pena q n tem a apostila da Caelum grátis pra JSF

uohk:
eu terminei a parte de tarefas e posso postar sim
eu vi uma vez uma pagina que o pessoal do forum gosta muito de postar ne um site (se eu nao me engano é da google) alguem pode me informar esse site ?
parece q esse site é de comum uso do forum

mas de qualquer forma upei no mediafire, depois eu reupo ele no outro site

pena mesmo :?

C

[quote=uohk]eu terminei a parte de tarefas e posso postar sim
eu vi uma vez uma pagina que o pessoal do forum gosta muito de postar ne um site (se eu nao me engano é da google) alguem pode me informar esse site ?
parece q esse site é de comum uso do forum

mas de qualquer forma upei no mediafire, depois eu reupo ele no outro site

Apenas complementando o que está sendo discutido no tópico: para seguir o curso, pelo menos até agora, é necessário a versão 3.1.x do Spring. A 3.2.x tem estrutura totalmente diferente.

Eu havia baixado a versão mais recente, que nesse momento é a 3.2.2 e fiquei perdido, pois no material acabou não sendo especificada a versão.

Na dúvida, baixem o projeto que o uohk disponibilizou aí na citação que lá já tem todos os jars necessários para o projeto funcionar e você seguir com o curso.

Criado 12 de fevereiro de 2012
Ultima resposta 17 de abr. de 2013
Respostas 24
Participantes 10