स्थानीय जावा ऐप इंजन डेटास्टोर कैसे ब्राउज़ करें?


84

ऐसा लगता है कि Google ऐप इंजन के जावा कार्यान्वयन के लिए पायथन ऐप इंजन के _ah / व्यवस्थापक के बराबर नहीं है।

क्या मैं मैनुअल तरीके से डेटास्टोर को ब्राउज़ कर सकता हूं? मेरी मशीन पर मिलने वाली फाइलें कहां हैं? (मैं ओएस एक्स पर ग्रहण के साथ ऐप इंजन प्लगइन का उपयोग कर रहा हूं)।

जवाबों:


111

http://googleappengine.blogspot.com/2009/07/google-app-engine-for-java-sdk-122.html : "सबसे लंबे समय तक, देव appserver में एक डेटा दर्शक होता है। अपने ऐप को स्थानीय रूप से प्रारंभ करें और अपने बिंदुओं को इंगित करें। इसे जाँचने के लिए ब्राउज़र ।http://localhost:8888/_ah/admin http://localhost:8000/datastore

* 1.7.7 के रूप में


नया व्यवस्थापक इंटरफ़ेस अभी भी मूल डेटास्टोर API द्वारा बनाए गए प्रकार / संस्थाओं के साथ काम नहीं कर रहा है। इसलिए मुझे अभी भी अपने "दर्शक" की आवश्यकता है :)
पॉल

15
लोकलहोस्ट: 8888 / _ह / एडमिन ने मेरे लिए एक विजेता की तरह काम किया (ध्यान दें कि पोर्ट बदल गया है) - लेकिन मैं तुलना के लिए ऐपवेंच को आज़माऊंगा।
चाड गोर्शिंग

आपको बहुत - बहुत धन्यवाद! मुझे वास्तव में दृढ़ता के मुद्दे पर बहस करने की जरूरत थी।
सनीड

40

वर्तमान में जावा एसडीके के लिए कोई डेटस्टोर दर्शक नहीं है - एक को अगले एसडीके रिलीज में आना चाहिए। इस बीच, आपका सबसे अच्छा दांव डेटास्टर देखने के कोड के साथ अपना स्वयं का व्यवस्थापक इंटरफ़ेस लिखना है - या अगले एसडीके रिलीज की प्रतीक्षा करें।

जावा ऐप इंजन में अब एक स्थानीय डेटास्टोर दर्शक, सुलभ है http://localhost:8080/_ah/admin


यह बेमानी है - ऊपर dfrankow की पोस्ट देखें।
जूलियन एच

23
आपका मतलब उस ब्लॉग पोस्ट का लिंक है जिसे मैंने इस उत्तर को पोस्ट करने के कई दिनों बाद पोस्ट किया था? 'पुराना' मैं स्वीकार करूंगा, लेकिन निरर्थक और वोट दिया जाना थोड़ा क्रूर है।
निक जॉनसन

1
मैं सहमत हूँ। समय पर अच्छा जवाब; अब पुराना है।
mcherm

@ मम्चर्म यह मेरे लिए काम करता है। अन्य जवाब यहाँ, दूसरी तरफ, नहीं।
जॉनी

6

मेरे पास मेरे विंडोज + ग्रहण वातावरण पर स्थानीय डेटास्टोर है।

जहाँ तक मुझे समझ आया कि यह "प्रोटोकॉल बफ़र्स" नामक आंतरिक प्रारूप का उपयोग करता है। फ़ाइल को मानव-पठनीय प्रारूप में प्रस्तुत करने के लिए मेरे पास बाहरी उपकरण नहीं हैं।

मैं इस तरह सरल "दर्शक" कोड का उपयोग कर रहा हूं:

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));
        }
    }
}

कोड अच्छा है, लेकिन क्वेरी कंस्ट्रक्टर के लिए पैरामीटर गलत है: तालिका सही नहीं है, यह संपूर्ण नाम है। अतिथि पुस्तिका उदाहरण में यह "अभिवादन" होगा जो पंक्ति है। मैंने यह कोशिश की, लेकिन काम नहीं कर रहा: अंतिम क्वेरी क्वेरी = नई क्वेरी ("गेस्टबुक / ग्रीटिंग"); एक अन्य मुद्दा: आप अपने कोड के साथ विभिन्न कुंजी / तालिका के नामों की सामग्री कैसे दिखा सकते हैं? जैसे Guestbook1, gb2, आदि
टिमो

2

एसडीके ( 1.7.6+ ) के नवीनतम संस्करणों में देव सर्वर का एडमिन हिस्सा इसके स्थान को बदलने के साथ आता है

सर्वर आउटपुट लॉग का विश्लेषण करते हुए हम देख सकते हैं कि यह सुलभ है:

http://localhost:8000

और दातासोर दर्शक:

http://localhost:8000/datastore

सुंदर साफ-सुथरा दिखता है - गूगल के नए डिजाइन के अनुसार।


1

क्योंकि Google App Engines Datastore दर्शक संदर्भित संस्थाओं के संग्रह को प्रदर्शित करने का समर्थन नहीं करता है, मैंने सभी निराश्रितों को प्रदर्शित करने के लिए पॉल के संस्करण को संशोधित किया है:

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));
            }
        }
    }
}

यह ध्यान दिया जाना चाहिए कि खाली संग्रह / संदर्भित संस्थाओं के लिए कुछ भी प्रदर्शित नहीं किया गया है।


यह कोड आपकी सभी संस्थाओं और उनकी बाल संस्थाओं के लिए लगता है, अगर बाल संस्थाओं में बच्चे भी हैं, तो क्या होगा? क्या यह कार्य पुनरावृत्ति के रूप में चलेगा?
पीनी चेइनी

1

\war\WEB-INF\appengine-generated\local_db.binएक पाठ संपादक के साथ फाइल खोलें , जैसे नोटपैड ++।

डेटा की जांच की जाती है, लेकिन कम से कम आप इसे पढ़ सकते हैं और इसे निकालने के लिए कॉपी कर सकते हैं।


हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.