2012-05-23 11 views
6

हम एक टेपेस्ट्री-वसंत-हाइबरनेट webapp, बिलाव 6 पर चल रहे एक दूसरे में कुछ 1000 अनुरोधों के बारे में सौंपने है बाहर थूक। यादृच्छिक रूप से, किसी भी स्पष्ट कारण के लिए, एक पृष्ठ ब्राउज़र पर यादृच्छिक वर्णों का एक समूह प्रदर्शित करता है। हालांकि, जब पृष्ठ रीफ्रेश किया जाता है, तो यह ठीक प्रदर्शित होता है।टेपेस्ट्री वेब एप्लिकेशन बिलाव पर कभी कभी कचरा

Page from tomcat on Chrome

यहाँ है मैं अब तक क्या पाया है: यहां Chrome पर विकृत पृष्ठ के स्रोत का एक स्क्रीन शॉट है

  1. यह ब्राउज़र विशिष्ट होना प्रतीत नहीं होता। मैंने इसे क्रोम और फ़ायरफ़ॉक्स पर देखा है, लेकिन उपयोगकर्ताओं ने आईई 7 और बाद में यह भी बताया है।
  2. ऐसा होता है जब सर्वर पर लोड होने पर कोई सहसंबंध नहीं होता है।
  3. पृष्ठ को रीफ्रेश करना पृष्ठ को सामान्य रूप से प्रदर्शित करता है, जैसे कि कुछ भी नहीं हुआ।
  4. मैं सर्वर या आवेदन लॉग में प्रासंगिक कुछ भी नहीं दिख रहा है
  5. पेज के लिए सामग्री प्रकार टैग है <meta content="text/html; charset=utf-8" http-equiv="content-type"/>
  6. कुछ अन्य ही कंटेनर, एक Alfresco किया जा रहा है पर तैनात webapps हैं, लेकिन वे इसे बिल्कुल प्रदर्शित नहीं कर रहे हैं।

मेरा प्रश्न है, क्या कोई इस में पहले भाग लेता है, और यदि ऐसा है, तो क्या वे मुझे बता सकते हैं कि मुझे कहां दिखना शुरू करना चाहिए? क्या यह पृष्ठ में किसी समस्या के साथ गलत सामग्री-प्रकार या सर्वर किसी समस्या के लिए इसे संभालने में सक्षम नहीं है? या यह टेपेस्ट्री में या एप्लिकेशन में ही एक फ्रेमवर्क बग हो सकता है? किसी भी संकेतक का स्वागत है। इस बिंदु पर, मुझे यकीन नहीं है कि समस्या कहां है, इसलिए मुझे यकीन नहीं था कि यह सर्वरफॉल्ट पर जाता है या यहां रहता है।

+0

मैंने पहले भी यह देखा है। – pstanton

उत्तर

0

यह टेपेस्ट्री फ्रेमवर्क (जैसा कि @ बर्निर द्वारा सुझाया गया है) में gzip संपीड़न के मुद्दों से संबंधित प्रतीत होता है और संभवतः टेपेस्ट्री 5.3 में एक रिग्रेशन बग है। एक mailing list thread से हावर्ड के शब्दों में:

मेरा मानना ​​है कि यह एक बग जहां कुछ निश्चित परिस्थितियों में, पेज की सामग्री का एक भ्रष्ट GZIP धारा ग्राहक को स्ट्रीम नहीं किया होता था; यह निश्चित रूप से 5.2.6 में तय है, लेकिन मैंने सोचा कि यह 5.2.5 में भी तय किया गया था।

त्वरित सुधार एप्लिकेशन की मॉड्यूल वर्ग के contributeApplicationDefaults विधि में निम्नलिखित विन्यास प्रतीक जोड़ने के लिए है:

configuration.add(SymbolConstants.GZIP_COMPRESSION_ENABLED, "false"); 

बेशक यह gzip संपीड़न को अक्षम कर देता है, लेकिन एक व्यापार बंद हो सकता है लायक बना रही है।

संभवतः संबंधित मुद्दों:

+0

आप कंटेनर स्तर पर gzip संपीड़न को आसानी से सक्षम कर सकते हैं, उदा। अधिक जानकारी के लिए http://viralpatel.net/blogs/enable-gzip-compression-in-tomcat/ या Google। – Kalle

2

यह सबसे अधिक संभावना आवेदन में एक बग है। (अधिकांश कीड़े प्रोग्रामर की स्वाभाविक प्रवृत्ति कुछ और इसके लिए जिम्मेदार होने के बावजूद ... कर रहे हैं।)

हालांकि, इस समस्या को ट्रैक करने के लिए एक सा मुश्किल हो सकता है। मेरा सुझाव है कि आप मानक चीजों से शुरू करें:

  • सर्वर त्रुटि लॉग को देखने के लिए देखें कि उस समय "घटनाओं" में से कोई एक अजीब दिखाई देता है या नहीं। यदि आप अनुरोध है कि कचरा डेटा उत्पादित पहचान कर सकते हैं सर्वर का उपयोग लॉग
  • देखो देखने के लिए।
  • अपने ब्राउज़र की डिबगर सक्षम करें और यदि आप नीचे बुरा अनुरोध है कि जिस तरह से ट्रैक कर सकते हैं देखते हैं।

यदि आप यह समझ सकते हैं कि खराब प्रतिक्रिया उत्पन्न करने का अनुरोध क्या था, तो आपको कारण खोजने में अधिक कर्षण होगा।


FWIW - यह एक वर्ण एन्कोडिंग समस्या के परिणाम की तरह दिखता नहीं है। यह बाइनरी या संपीड़ित डेटा की तरह दिखता है।

+2

क्या आपका ऐप प्रतिक्रिया को संपीड़ित करता है? यह हेडर के बिना ज़िप्ड डेटा की तरह दिखता है कि ब्राउज़र को यह बताने के लिए कि यह संपीड़ित है। क्या आपके ऐप के सामने कोई वेब सर्वर है? – barnyr

+0

हां, ऐप प्रतिक्रिया को gzips। और नहीं, हमारे पास एक वेब सर्वर नहीं है। हम करते थे, लेकिन यह समस्याओं का एक अलग सेट था। मुझे लगता है कि आप gzip हेडर के साथ कुछ पर हो सकता है। मैं वहां धन्यवाद देखना शुरू कर दूंगा! – Jeshurun

1

यहाँ एक स्थिति है कि मुझे एक विकृत पेज देखने के लिए नेतृत्व किया गया है है। त्रुटि पृष्ठ पर टेपेस्ट्री एक्स-टेपेस्ट्री-त्रुटि संदेश नामक एक प्रतिक्रिया शीर्षलेख सेट करता है। स्पष्ट रूप से हेडर में कम से कम न्यूलाइन की अनुमति नहीं है (कम से कम कुछ ब्राउज़रों पर) ताकि यदि उस शीर्षलेख में एक नई लाइन है, तो आपको अस्पष्टता मिल जाएगी। एक त्रुटि संदेश जो हम सेटिंग कर रहे थे, पिछली नई पंक्ति के लिए हुआ था। मैंने इसे हेडर सेट करने से पहले किसी भी न्यूलाइन को हटाने के लिए बदल दिया और फिर त्रुटि पृष्ठ सही ढंग से दिखाया गया।

संबंधित मुद्दे