gpt4 book ai didi

spring-boot - 部署到独立 Tomcat 时 Spring Boot 应用程序无法正常工作

转载 作者:行者123 更新时间:2023-12-04 16:27:15 25 4
gpt4 key购买 nike

我关注了this tutorial .现在,如果我通过 Spring Boot 使用它,它可以工作,但是如果我尝试在 Apache Tomcat 7 上部署它(删除应用程序类),我会得到 404 响应。我也尝试过自己的配置 - 像这样:

@Configuration
public class MongoConfiguration {

public @Bean MongoDbFactory mongoDbFactory() throws Exception {
return new SimpleMongoDbFactory(new Mongo("127.0.0.1", 27017), "movies");
}

public @Bean MongoTemplate mongoTemplate() throws Exception {
return new MongoTemplate(mongoDbFactory());
}
}

它仍然不起作用。所以2个问题。
  • 如何在tomcat上运行(如何在tomcat上做简单的rest和run)
  • 如何通过注解配置 mongo(只是为了获取我的数据库)

  • 注意:默认情况下,它使用运行 Spring 启动的测试恶意软件,我可以通过简单的 Controller (而不是 @RepositoryRestResource )使其工作,但我希望能够 curl http://localhost:8080并通过选项获得响应。

    最佳答案

    你确定你关注了section on traditional deployments引导引用文档?根据您的描述,Spring Data REST 或 MongoDB 似乎没有工作,但部署根本没有真正工作。

    诀窍应该是让您必须实现一个特殊接口(interface)的主配置类,以便 servlet 容器可以找到引导的配置(示例取自引用文档):

    @Configuration
    @EnableAutoConfiguration
    @ComponentScan
    public class Application extends SpringBootServletInitializer {

    @Override
    protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
    return application.sources(Application.class);
    }
    }
    SpringBootServletInitializer是这里的关键方面,因为它是与传统 Web 应用程序的 Servlet 3 引导机制 Hook 的类型。引用文档也有 instructions关于如何使启动应用程序在 Servlet 3.0 之前的 Servlet 容器中工作。

    另请注意,当应用程序部署到独立容器中时,它通常不能通过根(即 http://localhost:8080/ )使用,而是以部署的 WAR 文件命名的专用上下文(例如 http://localhost:8080/my-app )。

    关于spring-boot - 部署到独立 Tomcat 时 Spring Boot 应用程序无法正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24815005/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com