在 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文件。为我工作。
实际上是我第一次在 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文件。为我工作。