मैं द्वारा मान "असफल" क्या आपका मतलब या कुछ इसी तरह "एक अपवाद फेंक"। यदि ऐसा है, तो आपको autoGenerate
विशेषता को WEB-INF/datastore-indexes.xml
में गलत पर सेट करना चाहिए।
उदाहरण WEB-INF/datastore-indexes.xml
:
<datastore-indexes autoGenerate="false">
</datastore-indexes>
गलत पर autoGenerate
स्थापना एक प्रश्न है कि एक समग्र सूचकांक एक अपवाद फेंक की आवश्यकता है कर देगा। उदाहरण कोड:
try {
Query q = new Query("Action")
.addSort("encrypter", Query.SortDirection.ASCENDING)
.addSort("requester", Query.SortDirection.ASCENDING)
.addSort("time", Query.SortDirection.DESCENDING);
//...snip...
} catch (Exception e) {
log.severe(e.toString());
}
मैं इस परीक्षण किया है और एक अपवाद की उम्मीद के रूप में लॉग मिला:
SEVERE: com.google.appengine.api.datastore.DatastoreNeedIndexException: Query com.google.appengine.api.datastore.dev.LocalCompositeIndexManager$IndexComponentsO
[email protected] requires a composite index that is not defined. You must update C:\appengine-java-sdk\dev\core1\war\WEB-INF\datastore-indexes.xml or enable au
toGenerate to have it automatically added.
The suggested index for this query is:
<datastore-index kind="Action" ancestor="false" source="manual">
<property name="encrypter" direction="asc"/>
<property name="requester" direction="asc"/>
<property name="time" direction="desc"/>
</datastore-index>
अधिक जानकारी के लिए datastore-indexes.xml reference देखते हैं।
क्या आपके पास यूनिट परीक्षण में इस विफलता के कारण होने का एक उदाहरण है, हालांकि? मेरे पास यह सेटिंग है और यह dev सर्वर के अंतर्गत चलते समय क्वेरी विफल होने का कारण बनती है, लेकिन एक ही क्वेरी निष्पादित करने वाले परीक्षण विफल नहीं होते हैं। शायद फ़ाइल को पढ़ने के लिए परीक्षणों के लिए कॉन्फ़िगर करने के लिए मुझे कुछ और करने की आवश्यकता है। –
पुनरुत्पादन उद्देश्यों के लिए, क्या आप अपना परीक्षण कैसे लिखते हैं इसका एक न्यूनतम कार्य उदाहरण प्रदान कर सकते हैं? वैकल्पिक रूप से, आप XmlDocument ऑब्जेक्ट्स के खिलाफ अपने प्रश्नों को परिभाषित करने का प्रयास कर सकते हैं जैसे कि: 'XmlDocument doc = new XmlDocument(); डॉक्टर.लोड (xmlFilePath); ' – Alex