在 Elastic Beanstalk 中部署应用程序后,应用程序端点抛出 404 not found in SpringBoot+MySql+Angular app with maven

After deployed the App in Elastic Beanstalk end point of app throws 404 not found in SpringBoot+MySql+Angular app with maven

实际上是我第一次在 AWS 上进行部署,而且自己完成这项任务更难。 在 Elastic Beans 及其各自的 RDS 数据库及其实例中创建我的应用程序后,我在我的 Spring 启动应用程序上创建了一个快照(jar),它也在 AWS 应用程序的部署过程中实现。 还在其软件类别中配置了几个项目,引用 RDS 数据库端点、服务器端口、数据库用户名等... .

然后在所有这些过程之后,使用 url 部署了应用程序。 但是,当我将 url 应用于我的 spring 引导控制器具有的端点时,我收到错误 404 Not Found;但如果我决定在本地工作,只请求 Elastic Bean 中的应用程序创建的 RDS 数据库,端点会显示数据并且应用程序可以工作

从字面上看,在我的 Spring 启动应用程序中,我在应用程序中声明了。属性与 AWS 中该数据库的连接

spring.datasource.url=jdbc:mysql://aat54g98qswmf3.clnhc7kmwszz.us-west-2.rds.amazonaws.com:3306/ebdb?useUnicode=true&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=UTC

spring.datasource.username=root
spring.datasource.password=xxxx
spring.jpa.database-platform=org.hibernate.dialect.MySQL5InnoDBDialect

logging.level.org.hibernate.SQL=debug

因此我在 spring 在本地工作的控制器没有任何问题


@RequestMapping(path = "/restaurant-booking/version1")
public class RestaurantController {

    @Autowired

    RestaurantService restaurantService;

    @ResponseStatus(HttpStatus.OK)
    @RequestMapping(value = "/restaurant/all", method = RequestMethod.GET, produces = MediaType.APPLICATION_JSON_VALUE)
    some code.........
    };

然后在我的浏览器上:

但是如果我切换到 url 由 AWS 中部署的 EB 应用程序提供便利,并且使用相同的端点

任何帮助的人都会很棒,因为老实说找不到问题或在哪里看! 提前致谢!!!

whitelabel 错误页面是 spring 中您未定义自己的错误页面时的默认错误页面。这意味着您的应用程序已部署并且 运行。您要么弄乱了请求映射,要么弄乱了 url.

如果我们查看您的映射,我们会发现 url 应该是.../restaurant-booking/version1/restaurant/all

请求映射在 class 和方法级别时会嵌套。

您实际上在本地使用了正确的 url,但在您部署的版本上却没有。

问题可能是由于与 RDS 的连接以及 Spring 引导应用程序的正确环境配置引起的。

我建议在继续创建环境之前(甚至之后),确保正确连接 RDS。对于配置部分:- 您可以使用 application-prod.properties 文件并为标记为 SPRING_PROFILES_ACTIVE 的软件配置指定环境变量和值,并将其值设置为 prod.

application-prod 属性包括:-

server.port=5000 
spring.datasource.url=jdbc:mysql://${RDS_HOSTNAME}:${RDS_PORT}/${RDS_DB_NAME} 
spring.datasource.username=${RDS_USERNAME}
spring.datasource.password=${RDS_PASSWORD}
spring.jpa.hibernate.ddl-auto=create

Select 创建环境之前或之后合适的 RDS。

您需要手动配置包含RDS的安全组的出入规则,允许创建、删除、更新等访问

然后最后上传环境中的jar文件。为我工作。