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

春靴战找不到index.html

高嘉熙
2023-03-14

我是Spring boot和tomcat的初学者,我发现了这个问题:

在tomcat服务器上部署Spring Bootwar文件时,如果要添加静态索引,就会出现问题。html与它并肩作战。

为了使它能够部署为war,我在我的应用程序类中添加了以下内容:

@SpringBootApplication
@ComponentScan(basePackages = {"com.app"})
@EnableMongoRepositories(basePackages = {"com.app"})
public class MyApp extends SpringBootServletInitializer {

    @Override
    protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
        return application.sources(MyApp.class);
    }

    public static void main(String[] args) {
        SpringApplication.run(MyApp.class, args);
    }
}

现在应用程序工作,但index.html(它位于src/main/资源下)将不显示(IM获得Whitelabel错误页与有一个意外的错误(type=方法不允许,状态=405)。请求方法'GET'不支持")

但如果我像这样创建它:

@SpringBootApplication
@ComponentScan(basePackages = {"com.app"})
@EnableMongoRepositories(basePackages = {"com.app"})
public class MyApp {

    public static void main(String[] args) {
        SpringApplication.run(MyApp.class, args);
    }
}

它显示了索引。html(但应用程序无法处理来自浏览器的GET请求,该请求在我获取HTTP状态404之前工作-请求的资源不可用)。

我如何配置它,使它们都能工作?

这是我的pom。xml

<packaging>war</packaging>
<build>
    <finalName>myapp</finalName>
</build>

<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>1.3.1.RELEASE</version>
</parent>

<dependencies>

    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>

    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-core</artifactId>
    </dependency>

    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-data-mongodb</artifactId>
    </dependency>

    <dependency>
        <groupId>org.springframework.data</groupId>
        <artifactId>spring-data-mongodb</artifactId>
        <version>1.8.1.RELEASE</version>
    </dependency>

    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-tomcat</artifactId>
        <scope>provided</scope>
    </dependency>

    <!-- Test -->
    <dependency>
        <groupId>junit</groupId>
        <artifactId>junit</artifactId>
        <version>4.12</version>
        <scope>test</scope>
    </dependency>

    <dependency>
        <groupId>com.jayway.restassured</groupId>
        <artifactId>rest-assured</artifactId>
        <version>2.7.0</version>
        <scope>test</scope>
    </dependency>

    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-test</artifactId>
        <scope>test</scope>
    </dependency>

</dependencies>

共有1个答案

东方修谨
2023-03-14

位于src/main/resources下

添加索引。htmlsrc/main/resources/public目录

根据spring boot的文档:

默认情况下,Spring Boot将从类路径中名为/static(或/public或/resources或/META-INF/resources)的目录或ServletContext的根目录提供静态内容

 类似资料:
  • 我有一个简单的Spring Boot应用程序,当我在Eclipse中使用我的Liberty服务器运行时,我可以运行良好,问题是当我尝试对war文件进行构建(使用maven)并将该war添加到同一服务器并尝试运行它时,服务器启动良好,但在点击服务器URL后,它会显示Spring Security登录名/密码弹出窗口,但在我的应用程序中,我配置了登录名和几个示例endpoint,但服务器找不到它们,从

  • 我想在我的Junit5单元测试中将值注入到带有@Value注释的私有字段。 我引用了这个,并使用了ReflectionTestUtils。setField通过注入值解决了我的问题,但在验证方法被调用的次数时失败。 MyClass(我的类别): 测试类: 运行上述测试时出错 我想kafkaTemplate.sendMessage();被调用一次,但被调用两次后添加反射TestUtils。 需要关于如

  • 有什么不同?我可以在联机主机上部署吗?

  • 我以前和legacy Spring合作过。我们通过xml配置定义了bean,并手动连接它们。我的团队最终做出了一致的努力来更新注释,并使用Spring Boot而不是Spring MVC的‘传统’方法。

  • 就像标题中提到的,我有一个Spring Boot项目。试图从我的IDE中启动项目时,它说,找不到主类。 我在这里发现了一个相对等价的问题:Spring Boot程序找不到main类 errormessage如下所示:“Fehler:Hauptklasse de.main.main konnte nicht gefunden oder geladen Werden”大致翻译为:“Error:main

  • 我试图在spring boot repository类中执行此查询,但console显示错误''邮递员也显示: 查询存储库