我正在尝试做Spring MVC教程:
它使您创建一个主控制器并启动一个Spring应用程序。
当我运行SpringApplication时,我可以看到一个Tomcat服务器启动了,一个控制器类按应有的方式实例化了。然而,映射似乎失败了:@RequestMap("/greing")当我尝试浏览 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");
}
}
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>
spring-boot-starter-parent
是使用 Spring Boot 的好方法,因此使用 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 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>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.2.5.RELEASE</version>
</parent>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
</dependencies>
</project>
默认情况下,使用嵌入式tomcat容器进行Spring启动,您只需要运行main
方法。在Spring Boot的Doc上阅读有关此主题的更多信息
如果你提高Spring日志级别,当web应用程序启动时,它应该向你显示哪些URL被映射到哪些类/方法。这可能会有所帮助。
另外,如果您使用的是Eclipse,右键单击project -
也许你可以使用@RestController
而不是@Controller
。对于REST api,如果我使用@Controller
,请求会导致404未找到错误,但在我将其更改为@RestController
后,请求工作正常。
我是Spring Boot的新手,并试图构建一个简单的Web应用程序。我定义了一个包含我的url映射的控制器类,但在浏览器上它给我一个白标页面错误(404)。我无法理解为什么它无法映射。我尝试过更改我的组件扫描基础包,但它仍然没有将我重定向到控制台中的页面“abc”或打印“在控制器中”。 pom.xml 控制器类 主类
我在使用Spring工具套件运行项目时遇到以下错误, 但如果我的问题是,我已经向pom添加了适当的依赖项。XML文件。那么问题出在哪里呢? 我的文件依赖关系如下, 我的控制器应用程序ontroller.java如下, 我的vives在中,您可以查看下面的树视图, 我已经更改了应用程序。属性文件。但是,我仍然不明白出了什么问题。 我的应用程序。属性文件如下, 我只是在My中打印hello,
我正在intellij中运行Spring Boot应用程序,我所有的计划任务和一切都正常工作,但是我在@RestController和@Request estMap注册的控制器没有注册。当我尝试访问这些时,我得到404,而当我使用eclipse时,同样工作正常。甚至我的ide控制台也显示rest控制器已注册: 无法猜测可能会出什么问题?
我试图找出一种最简单的方法来控制基本Spring Boot RESTful服务的404 Not Found处理程序,例如Spring提供的示例: https://spring.io/guides/gs/rest-service/ 而不是让它返回默认的Json输出: 或者有比抛出并处理NoHandlerFoundException更好的方法吗?
我有一个java/Spring Boot应用程序,我想在其中构建一个APIendpoint,创建并返回一个可下载的excel文件。这是我的控制器endpoint: 然后是服务类 这段代码使用Apache POI库成功地创建了正确的excel文件。但是这不会正确地将它从控制器中返回,因为< code > ByteArrayResource::getFilename 总是返回null: 我可以使用什么
我正在尝试运行一个Spring Boot应用程序。我从教程中下载了一段代码,这样我就知道这段代码可以工作。当我运行我的jar文件时,它看起来就像我在8080端口上运行的应用程序,但我仍然得到404对于任何URL来说,我从来没有得到spring白色标签页面。我检查了8080端口上没有任何其他东西在运行,并且服务器已经启动并运行。 我不知道为什么我的申请没有反应。 } http://maven.apa
> 我有两个控制器(ControllerA和ControllerB) 两个控制器都调用一个服务(MyService)。 MyService调用名为MyRepository的接口,该接口有两个实现(FirstRepository和SecondRepository)。 如何可能在从ControllerA调用服务(MyService)时使用FirstRepository而在调用来自ControllerB
招呼 我有一个Spring Boot应用程序(1.4.1版)。之前从中设置 -支持thymeleaf模板中不严格的html。我只在电子邮件模板中使用Thymeleaf模板。该应用程序代表tho REST API,所有控制器返回数据。 然而,在我为电子邮件设置了Thymeleaf之后,一些请求正在为它们寻找Thymeleaf模板,并返回。 Thymeleaf配置(yml,这是Thymeleaf的所有