Java Spring boot MVC模板-tomcat7给出404错误
如果调用tomcat服务器的默认url,我将看到错误404。程序运行时没有任何问题,但restcontroller可能已禁用(我不知道,通常不知道)。日志中没有错误。起始页是html格式。我设置了默认路径(见下文) 我正在使用Spring Boot和tomcat7 请求的资源(/dashboard/)不可用 Spring启动路径src\main\resources\templates\index.html 战争中的Index.html路径:。\tomcat7\webapps\dashboard\WEB-INF\classes\templates\Index.html MainJava Spring boot MVC模板-tomcat7给出404错误,java,spring,maven,spring-mvc,tomcat,Java,Spring,Maven,Spring Mvc,Tomcat,如果调用tomcat服务器的默认url,我将看到错误404。程序运行时没有任何问题,但restcontroller可能已禁用(我不知道,通常不知道)。日志中没有错误。起始页是html格式。我设置了默认路径(见下文) 我正在使用Spring Boot和tomcat7 请求的资源(/dashboard/)不可用 Spring启动路径src\main\resources\templates\index.html 战争中的Index.html路径:。\tomcat7\webapps\dashboard\
@Configuration
@EnableAutoConfiguration
@ComponentScan(basePackages = "com.###.dashboard")
@EnableJpaRepositories
@EntityScan(basePackages = "com.###.dashboard.domain")
public class Dashboard extends SpringBootServletInitializer {
public static void main(String[] args) {
SpringApplication.run(new Object[] {Dashboard.class, DashboardController.class}, args);
}
@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
return application.sources(Dashboard.class);
}
}
RestController
@RestController
public class DashboardController {
/**
*...
*/
@RequestMapping("/")
public String setPage(Model model) {
// ...
return "index";
}
}
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/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.###.dashboard</groupId>
<artifactId>Dashboard</artifactId>
<packaging>war</packaging>
<version>1.0</version>
<name>Dashboard</name>
<url>http://maven.apache.org</url>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.1.8.RELEASE</version>
</parent>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-mobile</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>
<dependency>
<groupId>com.h2database</groupId>
<artifactId>h2</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.data</groupId>
<artifactId>spring-data-commons</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
<scope>provided</scope>
</dependency>
</dependencies>
<properties>
<start-class>com.###.dashboard.main.Dashboard</start-class>
</properties>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
谢谢尝试将模板放入
src/main/resources/templates
(这是spring启动的另一个默认路径)
它适合我,资源/模板听起来比资源/资源好:)尝试将模板放入
src/main/resources/templates
(这是spring boot的另一个默认路径)
它适用于我,资源/模板听起来比资源/资源好:)尝试将控制器注释为@controller,并为控制器提供“/dashboard”默认请求映射,以便仪表板控制器可以响应uri以“/dashboard”开头的请求
@Controller
@RequestMapping("/dashboard")
public class DashboardController
使用调试点查看请求是否已进入控制器管道,白页可能与空模板相关尝试将控制器注释为@controller,并为控制器提供“/dashboard”默认请求映射,以便仪表板控制器可以响应uri以“/dashboard”开头的请求
@Controller
@RequestMapping("/dashboard")
public class DashboardController
使用调试点查看请求是否已通过控制器管道,白色页面可能与空模板相关,这意味着您的spring容器无法找到默认页面。只需将您的主页添加到src或对主页进行适当的重定向。出于测试目的,您可以在放置主页的web上使用完整的映射。这意味着您的spring容器无法找到默认页面。只需将您的主页添加到src或对主页进行适当的重定向。出于测试目的,您可以在放置主页的web上使用完整的映射。通过以下更改,它可以工作 我注释掉了
spring boot starter thymeleaf
,因为它要求将一些模板放到/templates文件夹中。
之后,我将@ResponseBody
添加到RequestMapping以返回字符串
@RequestMapping("/")
public @ResponseBody String setPage(Model model) {
return "index";
}
因此,您可能对春季启动程序thymeleaf有问题
注意:我使用pom中的spring boot maven plugin
插件启动了tomcat,命令行是mvn spring boot:run
,并进行了以下更改,它工作正常
我注释掉了spring boot starter thymeleaf
,因为它要求将一些模板放到/templates文件夹中。
之后,我将@ResponseBody
添加到RequestMapping以返回字符串
@RequestMapping("/")
public @ResponseBody String setPage(Model model) {
return "index";
}
因此,您可能对春季启动程序thymeleaf有问题
注意:我使用pom中的spring boot maven插件启动了tomcat,命令行是mvn spring boot:run
在没有maven的情况下使用Tomcat7时会出现很多错误,比如在spring中添加hibernate验证程序和hibernate依赖项请注意,有一件事要更新eclipse。切换到Tomcat8,它是用API-3.0设置的,所以每个hibernate组件都可以使用它。即使是一些错误的疑问也可以随意问我
@navajavadevolper在没有MAVEN的情况下使用Tomcat7时,这里有很多get错误,比如在春季添加hibernate验证器和hibernate依赖项请注意,有一件事可以更新eclipse。切换到Tomcat8,它是用API-3.0设置的,所以每个hibernate组件都可以使用它。即使是一些错误的疑问也可以随意问我
@navajavadevolper当您向“/”/=white page、/dashboard/=请求的资源(/dashboard/)不可用时会发生什么情况。可能不是问题,但听起来您只是想要@Controller
,而不是@RestController
。RestController用于直接处理序列化数据,而不是查看resolverI昨天尝试了@Controller,同样的问题我也遇到了同样的问题。原来我忘了在pom.xml文件中添加spring boot starter thymeleaf
依赖项,但是我可以看到您这样做了。。。您是否尝试转到pom.xml文件并运行mvn clean install package
?下载的依赖项可能与pom文件不同步。当您向“/?/=白色页面,/dashboard/=请求的资源(/dashboard/)发出请求时会发生什么情况。可能不是问题,但听起来您只是想要@Controller
,而不是@RestController
。RestController用于直接处理序列化数据,而不是查看resolverI昨天尝试了@Controller,同样的问题我也遇到了同样的问题。原来我忘了在pom.xml文件中添加spring boot starter thymeleaf
依赖项,但是我可以看到您这样做了。。。您是否尝试转到pom.xml文件并运行mvn clean install package
?下载的依赖项可能与pom文件不同步。很抱歉,我使用了资源/模板。是我的错。问题仍然存在。你对另一个答案的评论是:“主页在那里。”src\main\resources\templates“如果我在eclise中启动项目,我不会收到任何错误,他会找到该页面。”a你确定你将war作为tomcat的根目录,因为另一个路径,例如,如果你将其放在webapps/folder中,将是localhost:8080/folder我确定,我把战争放在根上了对不起,我使用了资源/模板。是我的错。问题仍然存在。请将您的评论发送给