J'essaie de faire Spring MVC tutoriel:404 erreur sur le contrôleur principal lors de l'utilisation de démarrage au printemps
Il vous fait créer un contrôleur principal pour lancer un SpringApplication. Lorsque j'exécute SpringApplication, je peux voir qu'un serveur Tomcat démarre, une classe de contrôleur est instanciée comme il se doit. Cependant, le mappage semble échouer: @RequestMapping ("/ greeting") Lorsque j'essaie de parcourir http://localhost:8080/TestSpringOpenEMM2/greeting ou http://localhost:8080/TestSpringOpenEMM2/greeting, j'obtiens toujours une erreur 404. (TestSpringOpenEMM2 est le nom de mon projet).
J'utilise eclipse IDE.
Voici mes fichiers:
package application;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class Application {
public static void main(String[] args) {
System.out.println("App starting");
SpringApplication.run(Application.class, args);
System.out.println("App started");
}
}
contrôleur:
import javax.servlet.annotation.WebServlet;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
@Controller
public class GreetingController {
static{
System.out.println("Static init GreetingController");
}
@RequestMapping("/greeting")
public String greeting(@RequestParam(value="name", required=false, defaultValue="World") String name, Model model) {
System.out.println("starting servlet (greeting)");
model.addAttribute("name", name);
return "greeting";
}
public GreetingController(){
super();
System.out.println("new GreetingController");
}
}
pom:
<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 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>TestSpringOpenEMM2</groupId>
<artifactId>TestSpringOpenEMM2</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>war</packaging>
<build>
<sourceDirectory>src</sourceDirectory>
<plugins>
<plugin>
<artifactId>maven-war-plugin</artifactId>
<version>2.6</version>
<configuration>
<warSourceDirectory>WebContent</warSourceDirectory>
<failOnMissingWebXml>false</failOnMissingWebXml>
</configuration>
</plugin>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.3</version>
<configuration>
<source>1.7</source>
<target>1.7</target>
</configuration>
</plugin>
</plugins>
</build>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot</artifactId>
<version>1.2.5.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-autoconfigure</artifactId>
<version>1.2.5.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-web</artifactId>
<version>4.1.7.RELEASE</version>
</dependency>
<dependency>
<groupId>org.apache.tomcat.embed</groupId>
<artifactId>tomcat-embed-logging-juli</artifactId>
<version>8.0.23</version>
</dependency>
</dependencies>
</project>
Avez-vous essayé d'ajouter également une annotation @RequestMapping à votre contrôleur? – Paddyd
assurez-vous que vous avez la bonne structure de répertoire et l'orthographe/capitalisation. Selon un lien que j'ai trouvé, il dit "Pour terminer notre application, nous devons créer un seul fichier Java.Maven compilera les sources de src/main/java par défaut, donc vous devez créer cette structure de dossier, puis ajouter un fichier nommé src /main/java/Example.java: " – jeffkempf
et le lien est http://docs.spring.io/spring-boot/docs/current/reference/html/getting-started-first-application.html – jeffkempf