gpt4 book ai didi

java - AWS Web 应用程序部署 .ebextensions 配置的超时问题不起作用

转载 作者:太空宇宙 更新时间:2023-11-04 10:22:58 25 4
gpt4 key购买 nike

请帮助我在 AWS(Amazon Web 服务)上启动 WAR Spring MVC Web 应用程序它因与数据库(RDS - 也是亚马逊)的连接超时而失败。

我在本地工作得很好。通过 tomcat 它连接到我的 RDS 并工作,但是当我在 AWS 上部署这场 war 时 - 超时。

我尝试添加配置来增加超时,但 AWS 似乎忽略了它。

你能帮忙吗?

WAR文件的结构:

-META-INF
-WEB-INF
|- classes
|- lib
|- view (*.jsp here)
-.ebextensions
|- timeout.config

timeout.config内容:

option_settings:
- namespace: aws:elasticbeanstalk:command
option_name: Timeout
value: 1800

日志:其中 com.books.dao.impl.GenreDAOImpl.findAll(GenreDAOImpl.java:49) 我对数据库的第一个请求。

16-Jun-2018 20:24:46.050 SEVERE [http-nio-8080-exec-8] org.apache.catalina.core.StandardWrapperValve.invoke Servlet.service() for servlet [dispatcher] in context with path [] threw exception [Request processing failed; nested exception is org.springframework.jdbc.CannotGetJdbcConnectionException: Could not get JDBC Connection; nested exception is java.sql.SQLRecoverableException: IO Error: The Network Adapter could not establish the connection] with root cause
java.net.SocketTimeoutException: connect timed out
at java.net.PlainSocketImpl.socketConnect(Native Method)
at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
at java.net.Socket.connect(Socket.java:589)
at oracle.net.nt.TcpNTAdapter.connect(TcpNTAdapter.java:161)
at oracle.net.nt.ConnOption.connect(ConnOption.java:159)
at oracle.net.nt.ConnStrategy.execute(ConnStrategy.java:428)
at oracle.net.resolver.AddrResolution.resolveAndExecute(AddrResolution.java:506)
at oracle.net.ns.NSProtocol.establishConnection(NSProtocol.java:595)
at oracle.net.ns.NSProtocol.connect(NSProtocol.java:230)
at oracle.jdbc.driver.T4CConnection.connect(T4CConnection.java:1452)
at oracle.jdbc.driver.T4CConnection.logon(T4CConnection.java:496)
at oracle.jdbc.driver.PhysicalConnection.connect(PhysicalConnection.java:666)
at oracle.jdbc.driver.T4CDriverExtension.getConnection(T4CDriverExtension.java:32)
at oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:566)
at java.sql.DriverManager.getConnection(DriverManager.java:664)
at java.sql.DriverManager.getConnection(DriverManager.java:208)
at org.springframework.jdbc.datasource.DriverManagerDataSource.getConnectionFromDriverManager(DriverManagerDataSource.java:153)
at org.springframework.jdbc.datasource.DriverManagerDataSource.getConnectionFromDriver(DriverManagerDataSource.java:144)
at org.springframework.jdbc.datasource.AbstractDriverBasedDataSource.getConnectionFromDriver(AbstractDriverBasedDataSource.java:196)
at org.springframework.jdbc.datasource.AbstractDriverBasedDataSource.getConnection(AbstractDriverBasedDataSource.java:159)
at org.springframework.jdbc.datasource.DataSourceUtils.doGetConnection(DataSourceUtils.java:111)
at org.springframework.jdbc.datasource.DataSourceUtils.getConnection(DataSourceUtils.java:77)
at org.springframework.jdbc.core.JdbcTemplate.execute(JdbcTemplate.java:394)
at org.springframework.jdbc.core.JdbcTemplate.query(JdbcTemplate.java:474)
at org.springframework.jdbc.core.JdbcTemplate.query(JdbcTemplate.java:484)
at com.books.dao.impl.GenreDAOImpl.findAll(GenreDAOImpl.java:49)

elasticbeanstalk 的安全性

Security Group for elastic bean

EC2 的安全性 Security Group for EC2 instance where public access failed

最佳答案

实际上,这不是配置文件不起作用的问题,而是由于安全组阻止了端口或不允许您的应用程序与数据库连接。

因此,如果您使用的是 RDS 实例,请检查 RDS 的安全组,以及它所在的VPC。最好的方法是尝试 ping 您的 RDS 实例,看看是否收到它的回复。

如果您使用的是 Mysql,在实例内运行,则只需在 EC2 安全组 中允许端口(对于 MySQL 为 3306)。由于您的端口未打开,因此 AWS 无法建立连接在这种情况下,如果在部署之前没有安装Mysql,则必须在您的实例中安装Mysql。

当您尝试使用本地开发(Tomcat)时会发生什么,所以在我们的代码中,我们提到 localhost:3306 作为连接 URL,并且在同一台机器上(您的开发和 MySQL),它工作得很好。

关于java - AWS Web 应用程序部署 .ebextensions 配置的超时问题不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50891576/

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