当前位置: 首页 > 知识库问答 >
问题:

Spring boot MVC模板-tomcat7给出404错误

张瀚漠
2023-03-14

如果我调用tomcat服务器的默认url,我将看到一个错误404。程序运行时没有任何问题,但restcontroller可能已禁用(我不知道,通常不知道)。日志中没有错误。起始页是html格式。我设置了默认路径(见下文)。

我正在使用Spring Boot和tomcat7。

请求的资源(/dashboard/)不可用。

Spring Boot路径src\main\resources\templates\index。html

指数战争中的html路径:。。\tomcat7\webapps\dashboard\WEB-INF\classes\templates\index。html

主要的

@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";
    }
}

聚甲醛

<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>

tomcat7服务器

2014-12-05 13:31:46.836  INFO 28052 --- [           main] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped "{[/],methods=[],param
s=[],headers=[],consumes=[],produces=[],custom=[]}" onto public java.lang.String com.###.dashboard.domain.DashboardController.setPage(org.springframework.ui.Model)

非常感谢。

共有3个答案

李言
2023-03-14

这意味着您的spring容器无法找到默认页面。只需将您的主页添加到src中,或者对主页进行适当的重定向。出于测试的目的,您可以在放置主页的web上使用完整的映射。

滕弘新
2023-03-14

尝试将控制器注释为@controller,并为控制器提供“/dashboard”默认请求映射,以便仪表板控制器可以响应uri以“/dashboard”开头的请求

@Controller
@RequestMapping("/dashboard")
public class DashboardController

使用调试点查看请求是否已落入控制器管道中,白色页面可能与空模板相关

狄海
2023-03-14

尝试将模板放入src/main/resources/templates(这是spring boot的另一个默认路径)

它适合我,资源/模板听起来比资源/资源更好:)

 类似资料:
  • 我使用和以及开发了一个Java web应用程序。我的应用程序在本地pc上运行,没有任何错误。 但是在我托管了我的应用程序之后,我无法访问servlet。它给了我错误。我不习惯在我的应用程序中映射servlet。我使用了。 托管服务器使用和。 可能是什么问题?我该怎么解决这个问题? 新更新 我购买主机的地方给了我上传文件的。tomcat中没有上传文件的地方,也没有上传文件到director的地方。所

  • **>错误:请求失败,状态代码为404, 在createError(createError.js:16)在settle.js:17)在xmlHttpRequest.HandleLoad(xhr.js:62)**

  • 我在高级模板中设置API应用程序时遇到了Yi2问题。我无法获得任何输入,只能通过API的v1调用模块的404 我想打给API地址是http://localhost/HeyConference/api/v1/country 我有以下教程/模板: http://www.yiiframework.com/forum/index.php/topic/69123-error-while-creating-a

  • 我在rest api应用程序中使用Springboot 1.5.7,并使用thymeleaf模板从我的api发送电子邮件。但是当我将spring boot的版本更新到2.0.2时,它抛出了404错误,即“错误解析模板”错误,模板可能不存在,或者任何配置的模板解析程序都无法访问“。 下面是application.yml中的配置 pom.xml中的thymeleaf版本 下面是我正在使用的模板结构,

  • 我正在尝试将Swagger添加到使用Jersey 1.19的现有应用程序中。为了在应用程序中添加Swagger,我一直遵循以下指南:https://github.com/swagger-api/swagger-core/wiki/Swagger-Core-Jersey-1.X-Project-Setup-1.5. 在Apache Tomcat上部署应用程序时,出现以下错误: 奇怪的是,我的泽西se

  • 我在摆弄弹力靴,但每向前走一步,就会让我后退两步。 我将我的简单应用程序与Springboot连接在一起,但我没有得到这个错误: 还有这一点: 我不用任何数据库。应用程序非常简单。下面是主要的类: 下面是其他两个类和: 就是这样。尽管它可能很简单。 下面是文件结构以及build.gradle文件内容: 能有人请帮助我让这个小程序运行,指出我在正确的方向,以解决这个问题? 事先好心谢谢你。