私は非常にばかげたことをする必要がありますが、それを指摘するためにいくつかの助けに感謝します.. 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&password=PASSWORD;"/>
<property name="cloudsql.url.dev" value="jdbc:mysql://localhost/demo?user=root&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&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 package
とmvn 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: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:グーグルます。mysql:// myprojectに:私たち-central1:?MyProjectと-DB /デモユーザー=ルート&パスワード= PASSWD123 &" それは
この404エラーはどこに表示されますか?ログで?あなたのブラウザで?また、ステップ8では、 'mvn appengine:update'を正常に実行したと言いますが、' appengine:update'を実行できないとします。どちらですか?そのコマンドは成功するか失敗するのですか? –
こんにちはエリック、私はmvn appengine:私のローカルからの更新はできません...しかし、私はGoogle Cloud Consoleから同じことをすることができますが、デプロイメントが終わった後、ブラウザを介してmyproject.appspot.comにアクセスしようとすると404エラーが表示されます。 – Divs