2016-08-05 2 views
0

Я должен делать что-то очень глупое, но был бы признателен за помощь в этом.
Я пытаюсь использовать codebase для проверки подключения экземпляра Google Cloud SQL с помощью приложения GAE. Я смог успешно запустить его на локальном компьютере, но, похоже, он успешно развертывается и в AppEngine, но когда я пытаюсь получить доступ к myproject.appspot.com, я получаю 404. Ниже приведены шаги, которые я выполнил (пропуская успешное местные связанные шаги)
1. Создан проект myproject
2. Созданный экземпляр Google Cloud SQL второго поколение, myproject-db
2. Создано root пользователя с паролем.
3. Используется строку соединения, как указано в Google Cloud Console "jdbc:google:mysql://myproject:us-central1:myproject-db/demo?user=root&password=PASSWORD;"
4. Appengine-web.xml выглядит, как показано нижеНевозможно запустить в GAE

<?xml version="1.0" encoding="utf-8"?> 
    <appengine-web-app xmlns="http://appengine.google.com/ns/1.0"> 
    <application>myproject</application> 
    <version>1</version> 
    <threadsafe>true</threadsafe> 
    <use-google-connector-j>true</use-google-connector-j> 

    <system-properties> 
    <property name="java.util.logging.config.file" value="WEB-INF/logging.properties"/> 
    <property name="cloudsql.url" value="jdbc:google:mysql://myproject:us-central1:myproject-db/demo?user=root&amp;password=PASSWORD;"/> 
    <property name="cloudsql.url.dev" value="jdbc:mysql://localhost/demo?user=root&amp;useSSL=false"/> 
    </system-properties> 
</appengine-web-app><br> 

5. Следующий фрагмент кода встроен в HibernateJPAServlet

if (System.getProperty("com.google.appengine.runtime.version") 
       .startsWith("Google App Engine/")) { 
      Class.forName("com.mysql.jdbc.GoogleDriver"); 
      properties.put("javax.persistence.jdbc.driver", 
       "com.mysql.jdbc.GoogleDriver"); 
      properties.put("javax.persistence.jdbc.url", 
       System.getProperty("cloudsql.url")); 
     } <br> 

6. Я загрузил код из своего локального в мой репозиторий myproject

https://source.developers.google.com/p/myproject/r/default 


7. Я запустил консоль Google Cloud Platform из представления «Разработка».
8. Успешно побежал mvn clean package и mvn appengine:update. Я не могу выполнить appengine:update из моего локального из-за ограничений брандмауэра/прокси.
9. Итак, на мой взгляд, я понимаю, что я запускаю приложение GAE и экземпляр GAE Cloud SQL для того же проекта. Так http://myproject.appspot.com/ следует разместить приложение I закачанный Шаг 8. Но когда я к нему доступ говорит "404" - "The requested URL/was not found on this server."

Только в случае, если проблема мы не можем развернуть его от Cloud Console, то, что другой альтернативы у меня есть? Я абсолютно не могу изменить правила сети/прокси.

EDITED - Я попытался запустить и развернуть приложение с mvn gcloud:run и mvn gcloud:deploy из-за ограничений прокси-сервера/брандмауэра. В конце это четко указано "Deployed URL: [https://myproject.appspot.com]". Но та же проблема остается, когда я получаю доступ к тому же Url через браузер.

EDITED - Я могу видеть след ошибки с панели инструментов App Engine. Это говорит

" org.hibernate.exception.JDBCConnectionException: Could not open connection 
Caused by: org.hibernate.exception.JDBCConnectionException: Could not open connection 
Caused by: 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. 
Caused by: java.io.EOFException: Can not read response from server. Expected to read 4 bytes, read 0 bytes before connection was unexpectedly lost. 
" 

Моя строка соединения "JDBC: Google: MySQL: // MyProject: нам-central1: MyProject-дб/демо пользователь = корень & пароль = PassWd123 &"

+0

Где вы видите эту ошибку на 404? В журнале? В вашем браузере?Кроме того, на шаге 8 вы говорите, что успешно выполнили 'mvn appengine: update', но тогда вы говорите, что не можете выполнить команду appengine: update'. Что он? Выполняется или не выполняется эта команда? –

+0

Привет, Эрик, я не могу сделать mvn appengine: обновление из моего локального ... Однако я могу сделать то же самое из Google Cloud Console, но после завершения развертывания, когда я пытаюсь получить доступ к myproject.appspot.com через браузер , Я вижу ошибку 404. – Divs

ответ

0

Это было мой плохой (также частично разрыв документации, и я тоже дал отзыв). Каждый раз, когда мы развертываем приложение через appengine или gcloud, вновь развернутая версия должна быть видна через вкладку "App Engine > Versions". Мы должны "Split Traffic" и дать "100%" (для тестирования) в недавно развернутую версию, а затем запустить «https://myproject.appspot.com», чтобы увидеть результаты, которые хотим увидеть.

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