我有一個Java web應用程序(REST API)與mysql數據庫交談。無法從Elastic Beanstalk上的Java應用程序連接到MySQL Amazon RDS,java.sql.SQLException:沒有合適的驅動程序
它在我的本地主機以及運行Tomcat和MySql的獨立EC2服務器上工作正常,但是當我部署在AWS Elastic Beanstalk上時,它無法連接到Amazon Relational Data Service。
我收到以下錯誤信息:
22:09:18,757 DEBUG BasicResourcePool:1831 - An exception occurred while acquiring a poolable resource. Will retry.
java.sql.SQLException: No suitable driver
at java.sql.DriverManager.getDriver(DriverManager.java:289)
at com.mchange.v2.c3p0.DriverManagerDataSource.driver(DriverManagerDataSource.java:224)
at com.mchange.v2.c3p0.DriverManagerDataSource.getConnection(DriverManagerDataSource.java:135)
at com.mchange.v2.c3p0.WrapperConnectionPoolDataSource.getPooledConnection(WrapperConnectionPoolDataSource.java:182)
at com.mchange.v2.c3p0.WrapperConnectionPoolDataSource.getPooledConnection(WrapperConnectionPoolDataSource.java:171)
at com.mchange.v2.c3p0.impl.C3P0PooledConnectionPool$1PooledConnectionResourcePoolManager.acquireResource(C3P0PooledConnectionPool.java:137)
at com.mchange.v2.resourcepool.BasicResourcePool.doAcquire(BasicResourcePool.java:1014)
at com.mchange.v2.resourcepool.BasicResourcePool.access$800(BasicResourcePool.java:32)
at com.mchange.v2.resourcepool.BasicResourcePool$AcquireTask.run(BasicResourcePool.java:1810)
at com.mchange.v2.async.ThreadPerTaskAsynchronousRunner$TaskThread.run(ThreadPerTaskAsynchronousRunner.java:255)
我運行MySQL 5.5,這是一個Java 7應用程序。
獲取Java 7 WAR文件來運行我有一個配置文件中.ebextensions
按: http://qslack.com/2012/12/using-java-1-7-on-amazon-aws-elastic-beanstalk/
我已審查http://docs.aws.amazon.com/elasticbeanstalk/latest/dg/create_deploy_Java.rds.html,而我沒有做的唯一事情就是
要連接到Tomcat RDS環境,必須在調用 Java代碼中的DriverManager.getConnection()之前使用Class.forName()明確加載驅動程序 。
因爲我使用Spring(3.2.0)和Hibernate(4.1.9)來建立數據庫連接。話雖如此,我確實嘗試添加到我的方法之一作爲測試,但它沒有奏效。
我已成功從命令行連接到彈性beanstalk ec2實例上,也從我的個人計算機上連接,因此它不是權限/訪問問題。
我在我的WebContent/WEB-INF/lib目錄中有mysql連接器/ j jar文件(mysql-connector-java-5.1.25-bin.jar)。我也嘗試手動將這個jar文件複製到/usr/share/tomcat7/lib
,但這沒有幫助。
這似乎是一個問題,有幾個人遇到過,但沒有一個提出的解決方案似乎工作。例如:
HTTPS://forums.aws.amazon.com/thread.jspa?messageID=413533 HTTPS://forums.aws.amazon.com/thread.jspa?messageID=285923 & TSTART = 0# 285923