我们构建了一个基于Java Spring的Web应用程序,该应用程序通过Hibernate访问Oracle后端。已部署的Tomcat 6 webapp无法连接到Amazon RDS Oracle实例
这里是我们的堆栈/工具:
- 的Tomcat 6
- 的Maven 3
- 春季(MVC,网络,ORM)3.2.0
- 的Hibernate 4.1.9
- 的Oracle 11g版本2
- Intellij IDEA。
为了从本地机访问RDS,我们是端口转发本地主机:2521至our-rds-instance-name.wercytsdzeszx.us-east-1.rds.amazonaws.com:1521
我们使用tomcat6-maven-plugin运行嵌入式Tomcat。我们用于测试的Maven配置是clean package tomcat6:仅用于运行的。这会将WAR文件部署到http://app.local:8080/our-app-name/,并允许我们通过此链接测试该网站。
使用Hibernate,当我们从本地嵌入式Tomcat实例运行Web应用程序时,我们可以成功连接到RDS实例。
然而,这是它变得愚蠢 - 当我们将WAR文件部署到我们的EC2实例(它是可访问RDS实例的安全组的一部分)时,应用程序不能再访问数据库。我们收到此错误:
org.hibernate.exception.GenericJDBCException:无法打开连接
这是令人难以置信我的脑海里。我们在运行Tomcat的EC2实例上安装了SQLPlus,并且我们可以连接到RDS实例,因此EC2实例有权访问连接到RDS实例。
我们的本地连接字符串将是这个样子: * JDBC:神谕:薄:USER_NAME /密码@本地:2521/SID *
我们的EC2(分期)实例连接字符串应该是这样的: * jdbc:oracle:thin:USER_NAME/[email protected]naws.com:1521/sid *
我可以提供更多的细节,但我先想要解决主要问题,所以我不会用无用的信息来淹没水域。
我感谢所有反馈。
Tony
您是否使用任何类型的连接池,如Apache DBCP? – Viccari 2013-05-08 11:41:10
不,我们目前没有使用连接池。 – dipadev 2013-05-08 12:25:44