gpt4 book ai didi

java - AWS EC2、Tomcat7、Spring Boot、web、mvc、REST - http get 方法不起作用

转载 作者:行者123 更新时间:2023-11-28 23:27:21 25 4
gpt4 key购买 nike

我已经使用 Spring Boot 开发了“hello-world”网络应用程序,并且在本地(在嵌入式 Tomcat 上)运行良好。

但是当我将我的 WAR 文件上传到安装在 AWS EC2 上的 Tomcat7 时,我在调用简单的 http get 方法时遇到了问题 - 我得到了 GET http://my_server_address:8080/ping 404(未找到)。

所有静态资源都可以正常工作(html、css 文件)。

我的 Controller 看起来像:

@RestController
public class PingController {
@RequestMapping(value = "/ping", method = RequestMethod.GET)
public String ping() {
return "Live!";
}
}

我的主类看起来像:

@SpringBootApplication
public class ServletInitializer extends SpringBootServletInitializer {

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

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

我假设我的 DispatcherServlet 有问题?我没有 web.xml - 只有简单的 application.properties

有人可以帮助我吗?提前致谢!

最佳答案

是的,您是对的,DispatcherServlet 有问题。但更准确地说,您遇到了 Spring Context 问题。

当应用程序通过 Spring Boot 运行时,Spring Boot 会关心 Spring 上下文和组件扫描。

如果您想使用 Tomcat 运行 Spring MVC 应用程序,您必须通过 XML 或 Java Base 配置手动配置 Spring Application Context。如果您不想使用 web.xml,您可以使用带有 WebApplicationInitializer 的“Full Java Base”配置。 (您使用的是 Tomcat 7,因此它支持 Servlet API 3.0)

顺便说一句,我建议您以任何方式创建 web.xml 以在 Java Web 服务器(如 Tomcat)中运行 Java Web 应用程序。

请在 Spring MVC documentation 中掠夺查找更多信息。

关于java - AWS EC2、Tomcat7、Spring Boot、web、mvc、REST - http get 方法不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35240341/

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