Java-сервлет App Engine не подключается к облачному SQL
Я создал веб-сервлет Java, используя механизм приложений, сервлет делает запросы к базе данных. Я протестировал сервлет локально, используя локальную базу данных, и он отлично работал, затем я приступил к тестированию сервлета локально, но получил доступ к базе данных Cloud SQL, что также отлично работало.
Моя проблема возникает после развертывания сервлета. После развертывания все запросы к базе данных возвращают следующее:
com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure
The last packet sent successfully to the server was 0 milliseconds ago. The driver has not
received any packets from the server.
Я проверил в облачной консоли, и мое приложение было правильно добавлено в облачные приложения SQL Authorized App Engine на вкладке Контроль доступа.
У кого-нибудь были подобные проблемы с развернутыми сервлетами движка приложений? Какие-нибудь решения или советы там? Буду признателен за любую помощь!
ОБНОВИТЬ:
Вышеуказанная ошибка была сгенерирована с использованием следующего кода для доступа к БД
Class.forName("com.mysql.jdbc.Driver");
Url = "jdbc:mysql://<ip-address-cloudsql>:3306/<dbname>";
Connection con = DriverManager.getConnection (Url,"root",<password>);
та же ошибка была получена с использованием этого кода, обратите внимание, что он очень похож на код, показанный в примере здесьhttps://developers.google.com/appengine/docs/java/cloud-sql/
Class.forName("com.mysql.jdbc.GoogleDriver");
Url = "jdbc:google:mysql://<appID:instanceID>/<dbname>?
user=root&password=<password>";
Connection con = DriverManager.getConnection (Url);
Я следовал советам по форматированию, показанным в этом сообщении stackoverflow, когда дело дошло до установки URL с помощью appid и экземпляра id:com.mysql.jdbc.exceptions.jdbc4.CommunicationsException:
Использование этого кода привело к следующей ошибке:
java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)
Я предполагаю, что это говорит localhost, потому что моя база данных cloudql настроена на слежение за сервлетом движка приложения. Также знайте, что оба эти метода работали нормально при локальном запуске сервлета и доступе к облачной базе данных SQL.
есть идеи? я не знаю что еще попробовать: [