Google App EngineのJava実装用のPython App Engineの_ah/adminに相当するものはないようです。ローカルJava App Engineデータストアをブラウズするには?
手動でデータストアを参照できますか?私のマシン上のファイルはどこにありますか? (私はOS XのEclipseでApp Engineプラグインを使用しています)。
Google App EngineのJava実装用のPython App Engineの_ah/adminに相当するものはないようです。ローカルJava App Engineデータストアをブラウズするには?
手動でデータストアを参照できますか?私のマシン上のファイルはどこにありますか? (私はOS XのEclipseでApp Engineプラグインを使用しています)。
は、私は\ WEB-INF \の\ local_db.bin
AppEngineのは、生成された\戦争に私のWindows + Eclipse環境でローカルデータストアを持っている限り、私はそれが「プロトコルバッファ」という名前の内部形式を使用して理解されるように。私は人間が読める形式でファイルを提示するための外部ツールを持っていません。私はこのような簡単な「ビューア」のコードを使用してい:
public void doGet(HttpServletRequest req, HttpServletResponse resp)
throws IOException
{
resp.setContentType("text/plain");
final DatastoreService datastore = DatastoreServiceFactory.getDatastoreService();
final Query query = new Query("Table/Entity Name");
//query.addSort(Entity.KEY_RESERVED_PROPERTY, Query.SortDirection.DESCENDING);
for (final Entity entity : datastore.prepare(query).asIterable()) {
resp.getWriter().println(entity.getKey().toString());
final Map<String, Object> properties = entity.getProperties();
final String[] propertyNames = properties.keySet().toArray(
new String[properties.size()]);
for(final String propertyName : propertyNames) {
resp.getWriter().println("-> " + propertyName + ": " + entity.getProperty(propertyName));
}
}
}
のJava SDKには、データストアビューアは現在ありません - 1は、次のSDKリリースで来てしなければなりません。その間、データストアのコードを表示して独自の管理インターフェイスを作成するか、次のSDKリリースを待つことをおすすめします。
Java App Engineにはローカルデータストアビューアがあり、http://localhost:8080/_ah/admin
にアクセスできるようになりました。
これは冗長です - 上のdfrankowの記事を参照してください。 –
あなたはこの投稿を投稿した数日後に投稿されたブログ記事へのリンクを意味しますか? 「時代遅れ」私は受け入れるだろうが、冗長で投票したのはちょっと残酷だ。 –
私は同意します。当時の良い答え。今は時代遅れです。 – mcherm
http://googleappengine.blogspot.com/2009/07/google-app-engine-for-java-sdk-122.html:「ついに、DEVのアプリケーションサーバーは、データビューアを持って、それをチェックアウトする*ローカルでアプリケーションを起動し、http://localhost:8888/_ah/admin
http://localhost:8000/datastore
にブラウザをポイントします。」
*はGoogle Appエンジンのデータストアビューアは、参照エンティティのコレクションを表示するサポートしていないので、私はすべての子孫のエンティティを表示するためにポールのバージョンを変更し1.7.7
のよう:
public void doGet(HttpServletRequest req, HttpServletResponse resp) throws IOException {
String entityParam = req.getParameter("e");
resp.setContentType("text/plain");
final DatastoreService datastore = DatastoreServiceFactory.getDatastoreService();
// Original query
final Query queryOrig = new Query(entityParam);
queryOrig.addSort(Entity.KEY_RESERVED_PROPERTY, Query.SortDirection.ASCENDING);
for (final Entity entityOrig : datastore.prepare(queryOrig).asIterable()) {
// Query for this entity and all its descendant entities and collections
final Query query = new Query();
query.setAncestor(entityOrig.getKey());
query.addSort(Entity.KEY_RESERVED_PROPERTY, Query.SortDirection.ASCENDING);
for (final Entity entity : datastore.prepare(query).asIterable()) {
resp.getWriter().println(entity.getKey().toString());
// Print properties
final Map<String, Object> properties = entity.getProperties();
final String[] propertyNames = properties.keySet().toArray(new String[properties.size()]);
for(final String propertyName : propertyNames) {
resp.getWriter().println("-> " + propertyName + ": " + entity.getProperty(propertyName));
}
}
}
}
それはすべきです空のコレクション/参照されたエンティティには何も表示されないことに注意してください。 SDK(1.7.6+)のdevのサーバーの管理者の一部の最新バージョンでは
このコードは、すべてのエンティティとその子エンティティを探します。子エンティティにも子がある場合はどうなりますか?この関数は再帰として実行されますか? –
は、それは我々はそれがでアクセス可能であることを見ることができ、サーバ出力ログを分析し、その場所
を変更しています:
http://localhost:8000
そしてデータストアビューア:
http://localhost:8000/datastore
Googleの新しいデザインガイドラインによれば、きれいに見えます。
メモ帳++などのテキストエディタで\war\WEB-INF\appengine-generated\local_db.bin
ファイルを開きます。
データはスクランブルされていますが、少なくともあなたはそれを読み取ることができ、コピーしてそれを抽出することができます。
コードは良好ですが、クエリコンストラクタのパラメータが間違っています:テーブルが正しくない、エンティティ名になります。ゲストブックの例では、行である "挨拶"になります。私はこれを試みましたが、動作しません:最終クエリクエリ=新しいクエリ( "ゲストブック/挨拶");別の問題: テーブルの異なるキー/名前のコンテンツをコードでどのように表示しますか? guestbook1、gb2などのように – Timo