2013-07-04 2 views
1

mysql 데이터베이스와 통신하는 Java 웹 응용 프로그램 (REST API)이 있습니다.Elastic Beanstalk의 자바 응용 프로그램에서 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을 실행 해요, 그리고 그것은 자바 7 응용 프로그램입니다.

내가 따라 .ebextensions에 설정 파일을 실행하는 자바 7 WAR 파일을 얻으려면 : 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()을 사용하여 드라이버 을로드해야합니다.

저는 DB 연결을 위해 Spring (3.2.0)과 Hibernate (4.1.9)를 사용하고 있습니다. 테스트 중 하나로 내 메소드 중 하나에 이것을 추가하려고 시도했지만 작동하지 않는다고 말했던 것입니다.

탄력있는 beanstalk ec2 인스턴스의 명령 줄과 내 개인 컴퓨터에서 성공적으로 연결 했으므로 권한/액세스 문제가 아닙니다.

WebContent/WEB-INF/lib 디렉토리에 mysql connector/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 # . 285,923

답변

1

문제는

문제 탄성 콩 줄기 내가 전달 된 JDBC_CONNECTION_STRING 환경 변수에 따옴표를 추가 한 것이 었습니다 및 솔루션이 스레드에 설명되어 다음에 다음을 추가 ( https://forums.aws.amazon.com/thread.jspa?threadID=115043

내 .ebextensions 구성이 고정되어 있습니다. 고소) :

commands: 
    patch_tomcat: 
     command: sed -i.bak s#\"/usr/sbin/tomcat7\"#\"/usr/sbin/tomcat7-elasticbeanstalk\"#g /etc/init.d/tomcat7 
관련 문제