У меня есть веб-приложение Java (REST API), которое ведет переговоры с базой данных mysql.Невозможно подключиться к MySQL Amazon RDS из приложения Java на Elastic Beanstalk, java.sql.SQLException: Нет подходящего драйвера
Он отлично работает на моем локальном хосте, а на автономном сервере EC2 работает Tomcat и MySql, однако при развертывании на 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.
Чтобы получить файл 7 WAR Java для запуска У меня есть файл конфигурации в .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, необходимо загрузить драйвер , явно используя Class.forName() перед вызовом DriverManager.getConnection() в коде Java.
Поскольку я использую Spring (3.2.0) и Hibernate (4.1.9) для соединения БД. Сказав, что я попытался добавить это к одному из моих методов в качестве теста, но это не сработало.
Я успешно соединился с командной строкой на экземпляре ec2 экскаватора beanstalk, а также с моего персонального компьютера, поэтому это не проблема с правами доступа/доступа.
У меня есть файл mysql connector/j jar (mysql-connector-java-5.1.25-bin.jar) в моем каталоге WebContent/WEB-INF/lib. Я также попытался вручную скопировать этот файл 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