Google App Engine의 자바 구현을위한 Python App Engine의 _ah / admin에 해당하는 것은없는 것 같습니다.
데이터 스토어를 수동으로 탐색 할 수있는 방법이 있습니까? 내 컴퓨터에서 찾을 수있는 파일은 어디에 있습니까? (OS X에서 Eclipse와 함께 App Engine 플러그인을 사용하고 있습니다.)
답변:
http://googleappengine.blogspot.com/2009/07/google-app-engine-for-java-sdk-122.html : "마침내 개발자 애플리케이션 서버에 데이터 뷰어가 있습니다. 로컬에서 앱을 시작하고 확인하려면 브라우저를 *로 설정하세요. "http://localhost:8888/_ah/admin
http://localhost:8000/datastore
* 1.7.7 기준
현재 Java SDK 용 데이터 저장소 뷰어는 없으며 다음 SDK 릴리스에서 제공 될 예정입니다. 그 동안 가장 좋은 방법은 데이터 저장소보기 코드를 사용하여 고유 한 관리 인터페이스를 작성하거나 다음 SDK 릴리스를 기다리는 것입니다.
이제 Java App Engine에 .NET에서 액세스 할 수있는 로컬 데이터 저장소 뷰어가 있습니다 http://localhost:8080/_ah/admin
.
\ war \ WEB-INF \ appengine-generated \ local_db.bin의 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));
}
}
}
Google App Engines Datastore 뷰어는 참조 된 항목의 컬렉션 표시를 지원하지 않기 때문에 모든 하위 항목을 표시하도록 Paul의 버전을 수정했습니다.
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));
}
}
}
}
빈 컬렉션 / 참조 된 엔터티에 대해서는 아무것도 표시되지 않습니다.