我正在尝试使用SpringMVC建立一个非常小的测试项目。 我设法让它运行在目标文件夹中创建的jar文件,如this tutorial中所述。但是,我无法通过IntelliJ IDEA配置部署war文件。
应用:
@SpringBootApplication
public class Application {
public static void main(final String[] args) {
SpringApplication.run(Application.class, args);
}
}
HelloController中
@Controller
public class HelloController {
@RequestMapping("/greeting")
public String greeting(final Model model) {
model.addAttribute("name", "bla");
return "greeting";
}
}
greeting.html
<!DOCTYPE HTML>
<html xmlns:th="http://www.thymeleaf.org">
<head>
<title>Getting Started: Serving Web Content</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
</head>
<body>
<p th:text="'Hello, ' + ${name} + '!'"/>
</body>
</html>
工件:
我在去#34; localhost:8080 /问候&#34;时得到404.
如果有人能够指出我做错了什么,我会很高兴。
答案 0 :(得分:0)
我可以看到你将Spring作为独立的应用程序启动
public static void main(final String[] args) {
SpringApplication.run(Application.class, args);
}
Tomcat仅适用于servlet应用程序。像通常的控制台应用程序一样启动你的春季应用程序(在主要()方法的Idea中右键单击并选择&#39;运行菜单项)。
然后在浏览器http://localhost:8080/greeting
你根本不需要IDEA中的工具来启动应用程序。
因此,如果您想在Tomcat等servlet容器中运行Spring启动作为war,那么请阅读this doc
答案 1 :(得分:0)
根据this comment的建议,我查看了these instructions。我在Application.java中遗漏了一些东西,即:
public class Application extends SpringBootServletInitializer {
@Override
protected SpringApplicationBuilder configure(final SpringApplicationBuilder application) {
return application.sources(Application.class);
}
public static void main(final String[] args) {
SpringApplication.run(Application.class, args);
}
}