2013-07-04 4 views
1

У меня есть веб-приложение 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

ответ

1

вопрос заключается в том, что Упругие бобовое дерево было добавлять кавычки переменной окружения JDBC_CONNECTION_STRING, что я проходил в

проблема и решение описано в этой теме:. https://forums.aws.amazon.com/thread.jspa?threadID=115043

(Добавление следующее моя конфигурация .ebextensions исправлена. sue):

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

 Смежные вопросы

  • Нет связанных вопросов^_^