Spring 3.1 - Hello World

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?

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

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>

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

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

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

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:

[quote=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: [/quote]

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!

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

[quote=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[/quote]

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!

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

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!

Ta usando Tomcat?

Tomcat 6.

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á

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.

[quote=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?[/quote]

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!

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

[quote=andytsunami][quote=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(&quot;/olaMundoSpring&quot;)
public String execute() {
	System.out.println(&quot;Executando a lógica com Spring MVC&quot;);
	return &quot;hello&quot;;
}

}

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?[/quote]

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![/quote]

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

[code]<?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.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>
[/code]

esse é meu web.xml

[code]<?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>fj21-tarefas</display-name>

&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;

</web-app>
[/code]

eu estou usando o tomcat 7

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.