今日の役に立たない一言 - Today’s Trifle! -

古い記事ではさまざまなテーマを書いていますが、2007年以降はプログラミング関連の話がほとんどです。

GAE

GAE/Javaでローカルデータストアのデータが消えてしまう問題

過去に作ったGAEアプリを触ってたら appengine-web.xml ファイルで警告が表示されるようになってる。appengine-web.xml ファイルのほぼ先頭に以下のような記述の部分。 <application>project-name</application> 現在は次の警告が表示される。 Project ID should be specified at deploy…

WordPressにXMLRPCで投稿しようとしたら「405 METHOD NOT ALLOWED」エラーになる

XMRPCでWordPressに投稿するプログラム。ローカルで動かしているGAEの開発サーバーからだと正常に投稿できるのに、GAEにデプロイしたシステムから投稿しようとすると、「405 METHOD NOT ALLOWED」エラーになる。どこでエラーになっているのかと、WordPressの…

Bad configurationエラーでGAEにデプロイできなかった原因と対策

GAEにデプロイしようとしたら、こんなエラー。 Bad configuration: Received SAXException parsing the input stream. Caused by: 途中でファイルの末尾に達しました。 ログを見ろって書いてあるので確認したら、WEB-INF/appengine-generated/datastore-inde…

slim3のsortInMemory()の挙動が変?

データストアからエンティティを取得して、sortInMemory()でcreateDate.descでソートしたら、なぜか最新のいくつかのエンティティが結果に出てこない。 なぜ?自作 Comparatorでソートしたらちゃんと最新のエンティティもでてくるんだけど。 なぜ? List<Hoge> lis</hoge>…

App Engineローカル開発サーバーのデータの場所

GAE

ローカル開発サーバーのデータが消えてしまったので、TimeMachineで過去からコピーしてくることに。データの場所はどこかというと、Googleの公式ドキュメント≫ Java 開発サーバー | Java の App Engine スタンダード環境 | Google Cloudによると、(project-d…

Google Cloud Storageに保存した画像をリサイズして応答する方法

最近はスマートフォンで撮影できる画像の解像度が巨大化してるので、そのままを表示すると遅くなってしまう。 そこで、リクエストパラメータにwidthを追加して、任意のサイズで表示できるようにした。ここではblobKeyを元にBlobInfoを求めてるけど、ファイル…

Amazon の Cloud9 にGAE開発環境を作る手順

AWSアカウントでログインして「Cloud9」で検索すると出てくるので、そこクリック。 Cloud9のダッシュボードが開くので、オレンジ色の「Create environment」をクリック。 適当に名前をつけて、「Next step」→「Next step」→「Create environment」で環境が作…

GCSにファイルをアップロードできなくて試行錯誤した話

GAE

GAEでファイルをアップロードすると60秒問題があるので、GCSにダイレクトにアップロードする方法を実装しようとして、なかなかできなくてかなり試行錯誤した。最初、ここに書いてあるやり方で実装してみた。≫GAE/jでファイルを扱う Part2 - Qiitaそうすると…

ローカルで複数のGAEプロジェクトを同時に実行する方法

複数のGAEプロジェクトをローカルのパソコンで同時に実行したい場合、普通に[実行]-[Webアプリケーション]を選択すると、デフォルトのポート番号8888で起動しようとして起動に失敗する。同時に複数のサーバーを起動するには、Jettyが使用するポート番号を変…

Datastoreに保存したオブジェクトのKeyの文字列化

文字列化するとパッと見では謎の文字列だしJSONでやり取りするにもひとつの文字列だけでオブジェクトを特定できるので便利。 相互変換するのも1行だけでOK。文字列化するときは以下のコード。 String s = KeyFactory.keyToString(key); Keyに変換するときは…

再びGAEへのデプロイでエラーが発生する

EclipseからGAEにデプロイしようとすると、こんなエラーが発生してデプロイできない。 "Deploying hogehoge to Google" 中に内部エラーが発生しました。 com.google.apphosting.utils.config.AppEngineWebXml.getPagespeed()Lcom/google/apphosting/utils/co…

GAE/Javaのデプロイでエラーが発生してデプロイできない

GAE

GAEアプリを作って、そこそこ動くようになったので、デプロイしようとしたら、ファイルのアップロードまではうまくいくのに、そのあとでこんなエラーが。 File upload done. ERROR: (gcloud.app.deploy) Error Response: [400] Java 6 applications are prev…

Eclipse Neon で Google Cloud API を使えるようにするまで

Eclipse Neon をインストールしてGAEアプリを作ろうとしたらいろいろと怒られた。 ツールバーのGoogle Cloud PlatformアイコンをクリックしてMaven-based Google App Engine Standard Java Project を選んだら、「Cloud sdk too old」と怒られた。コマンドラ…

GAEからメールを送信する方法

Javamailを使うと簡単に送信できる。 コードはあちこちにころがってるからいまさら書くまでもないけど。 package jp.hoge; import java.util.Properties; import javax.mail.Message; import javax.mail.MessagingException; import javax.mail.Session; imp…

Domain-Wide Delegationの利用で「Not Authorized to access this resource/api」エラーが発生する

GAE

≫ Perform G Suite Domain-Wide Delegation of Authority | Directory API | Google Developersここに書いてあった手順でやったけど、なかなか動かなくて3日くらいはまった。このエラーにずっと悩まされた。 com.google.api.client.googleapis.json.GoogleJs…

GAEのプロジェクトでコンパイルエラー

ふと気付くと、GAEのプロジェクトでコンパイルエラーが発生してた。以前はなんともなかったのに。 エラーメッセージはこれ。 The import com.google.appengine.api.datanucleus cannot be resolved. エラーが発生しているクラスはHogeEndPointというやつで、…

JavaScript ClientからApp EngineのCloud EndpointsでOauth2認証する方法

試行錯誤してできるようになったので、簡単にまとめる。 基本的にはここに書いてあるとおり。To use a Google Cloud Endpoint, you'll need to use the Google JavaScript client library. The code you need to add to use Endpoints is minimal, consistin…