2016-08-05 5 views
0

私は非常にばかげたことをする必要がありますが、それを指摘するためにいくつかの助けに感謝します.. codebaseを使用して、Google Cloud SQLインスタンスとGAEアプリケーションの接続をテストしようとしています。私はそれをローカルで正常に実行することができましたが、それはAppEngineでもうまく展開されているようですが、myproject.appspot.comにアクセスしようとすると404が発生します。 以下は、地元関連の手順)
1.プロジェクト
2. myprojectを作成し作成したGoogleのクラウドSQL第2世代インスタンス、myproject-db
2.パスワードを持つrootユーザーを作成しました。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.下に次のコードスニペットは

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> 
HibernateJPAServlet
に埋め込まれるようにGoogleクラウドコンソール "jdbc:google:mysql://myproject:us-central1:myproject-db/demo?user=root&amp;password=PASSWORD;"
4のappengine-web.xmlに示すように
3.接続文字列を使用し検索します

6.自分のローカルからデフォルトのmyprojectリポジトリにコードをアップロードしました

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


7.「開発」ビューからGoogle Cloud Platformコンソールを起動しました。
8. mvn clean packagemvn appengine:updateを正常に実行しました。ファイアウォール/プロキシの復元のために私のローカルからappengine:updateを実行することはできません。
9.この時点で、私の理解は、同じプロジェクトのGAEアプリケーションとGAE Cloud SQLインスタンスを実行しています。だから、http://myproject.appspot.com/が、私は手順8をアップロードするアプリケーションをホストする必要があります。しかし、私はそれが"404" - "The requested URL/was not found on this server."

に言うアクセスするときに問題がある念のために、我々はクラウドコンソールからそれを展開することはできませんし、私は他にどのような選択肢がありますか?私は絶対にネットワーク/プロキシのルールを変更することはできません。

EDITED - mvn gcloud:runmvn 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:グーグルます。mysql:// myprojectに:私たち-central1:?MyProjectと-DB /デモユーザー=ルート&パスワード= 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」を起動して、確認したい結果を確認してください。

関連する問題