Erro livro java spring mv casa do codigo

2 respostas
spring
IsaelCoelho

Boa noite pessoal.
comprei o livro da casa do codigo Spring MVC e estou com um erro, o spring não está executando os controller quando eu rodo a aplicação da o erro 404
alguém ai pode me ajudar:
meu arquivo pom.xml

<?xml version="1.0" encoding="UTF-8"?>
4.0.0 org.casadocodigo casadocodigo 1.0.0-SNAPSHOT war casadocodigo false 1.8 1.8 UTF-8 org.springframework spring-webmvc 5.2.4.RELEASE org.apache.tomcat tomcat-servlet-api 7.0.30 provided javax.servlet.jsp jsp-api 2.2 provided javax.servlet.jsp.jstl jstl-api 1.2 javax.servlet servlet-api org.glassfish.web jstl-impl 1.2 javax.servlet servlet-api org.slf4j slf4j-api 1.6.1 org.slf4j jcl-over-slf4j 1.6.1 runtime org.slf4j slf4j-log4j12 1.6.1 runtime log4j log4j 1.2.16 runtime

meu arquivo de configuração
package br.com.casadocodigo.loja.conf;

import org.springframework.context.annotation.Bean;

import org.springframework.context.annotation.ComponentScan;

import org.springframework.web.servlet.config.annotation.EnableWebMvc;

import org.springframework.web.servlet.view.InternalResourceViewResolver;

import br.com.casadocodigo.loja.controllers.HomeController;

@EnableWebMvc

@ComponentScan(basePackageClasses = {HomeController.class})

public class AppWebConfiguration {
@Bean
public InternalResourceViewResolver internalResourceViewResolver() {
	InternalResourceViewResolver resolver = new InternalResourceViewResolver();
	resolver.setPrefix("/WEB-INF/views/");
	resolver.setSuffix(".jsp");
	return resolver;
}

}

package br.com.casadocodigo.loja.conf;

import org.springframework.web.servlet.support.AbstractAnnotationConfigDispatcherServletInitializer;

public class ServletSpringMVC extends AbstractAnnotationConfigDispatcherServletInitializer{

@Override
protected Class<?>[] getRootConfigClasses() {
	
	return null;
}

@Override
protected Class<?>[] getServletConfigClasses() {
	
	return new Class[] {AppWebConfiguration.class};
}

@Override
protected String[] getServletMappings() {
	
	return new String[] {"/"};
}

}

por o controller

package br.com.casadocodigo.loja.controllers;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;

@Controller
public class HomeController {

@RequestMapping("/")
public String index() {
	System.out.println("Carregar meu produtos aqui ");
	return "home";
}

}

2 Respostas

Moreira89

Boa noite

Fiz o teste e funcionou normalmente…

pom.xml

<project xmlns="http://maven.apache.org/POM/4.0.0"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
	<modelVersion>4.0.0</modelVersion>
	<groupId>br.com.moreira.teste</groupId>
	<artifactId>casadocodigo</artifactId>
	<version>0.0.1-SNAPSHOT</version>
	<packaging>war</packaging>

<dependencies>

	<!-- Spring MVC -->
	<dependency>
		<groupId>org.springframework</groupId>
		<artifactId>spring-webmvc</artifactId>
		<version>4.2.0.RELEASE</version>
	</dependency>

	<dependency>
		<groupId>org.apache.tomcat</groupId>
		<artifactId>tomcat-servlet-api</artifactId>
		<version>9.0.30</version>
		<scope>provided</scope>
	</dependency>

	<!-- JSP e JSTL -->
	<dependency>
		<groupId>javax.servlet.jsp</groupId>
		<artifactId>jsp-api</artifactId>
		<version>2.1</version>
		<scope>provided</scope>
	</dependency>

	<dependency>
		<groupId>javax.servlet.jsp.jstl</groupId>
		<artifactId>jstl-api</artifactId>
		<version>1.2</version>
		<exclusions>
			<exclusion>
				<groupId>javax.servlet</groupId>
				<artifactId>servlet-api</artifactId>
			</exclusion>
		</exclusions>
	</dependency>

	<dependency>
		<groupId>org.glassfish.web</groupId>
		<artifactId>jstl-impl</artifactId>
		<version>1.2</version>
		<exclusions>
			<exclusion>
				<groupId>javax.servlet</groupId>
				<artifactId>servlet-api</artifactId>
			</exclusion>
		</exclusions>
	</dependency>

</dependencies>

<build>
	<plugins>
		<plugin>
			<artifactId>maven-war-plugin</artifactId>
			<version>2.4</version>
			<configuration>
				<failOnMissingWebXml>false</failOnMissingWebXml>
			</configuration>
		</plugin>
	</plugins>
</build>

A classe AppWebConfiguration extends WebMvcConfigurerAdapter

@EnableWebMvc
@ComponentScan(basePackageClasses = { HomeController.class })
public class AppWebConfiguration extends WebMvcConfigurerAdapter {

Console

INFO: Starting ProtocolHandler ["ajp-nio-8009"]
mar 13, 2020 11:52:32 PM org.apache.catalina.startup.Catalina start
INFO: Server startup in [12.710] milliseconds
Carregar meu produtos aqui

Você verificou no Properties do seu projeto, em Project Facets, seleciona Dynamic Web Module e vai em Runtime, verifica se está selecionado o TomCat.

IsaelCoelho

Corrigi aqui era o tomcat versão 9 que não funcionou coloquei o 8 rodou liso. valeu assim mesmo.

Criado 12 de março de 2020
Ultima resposta 24 de mar. de 2020
Respostas 2
Participantes 2