我关注了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个问题。
注意:默认情况下,它使用运行 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/