Я пытаюсь сделать Spring MVC учебника:404 ошибки главного контроллера при использовании пружинных загрузок
Это заставляет вас создать основной контроллер объявление начать SpringApplication.
Когда я запускаю SpringApplication, я вижу, что сервер Tomcat запускается, класс контроллера получает инстанс, как и следовало ожидать. Однако сопоставление кажется неудачным: @RequestMapping ("/ greeting") Когда я пытаюсь просмотреть http://localhost:8080/TestSpringOpenEMM2/greeting или http://localhost:8080/TestSpringOpenEMM2/greeting, я всегда получаю ошибку 404. (TestSpringOpenEMM2 - мое имя проекта).
Я использую Eclipse IDE.
Вот мои файлы:
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");
}
}
контроллер:
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");
}
}
ПОМ:
<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>
Вы попробовали добавить примечание @RequestMapping к своему контроллеру? – Paddyd
убедитесь, что у вас есть правильная структура каталогов и орфография/капитализация. Согласно ссылке, которую я нашел, он говорит: «Чтобы завершить наше приложение, нам нужно создать один файл Java. Maven будет компилировать источники из src/main/java по умолчанию, поэтому вам нужно создать эту структуру папок, а затем добавить файл с именем src /main/java/Example.java: " – jeffkempf
и ссылка http://docs.spring.io/spring-boot/docs/current/reference/html/getting-started-first-application.html – jeffkempf