2012-05-23 20 views
6

Tomcat 6'da çalışan bir Goblen-Spring-Hibernate webapp'ımız var. Rastgele, görünür bir neden olmadığı için, bir sayfa tarayıcıda sadece bir grup rasgele karakter görüntüler. Ancak, sayfa yenilendiğinde, iyi görüntülenir. İşteTomcat'deki Goblen Web Uygulaması bazen çöp kutusuna tükürüyor

Page from tomcat on Chrome

Ben şimdiye kadar neler bulduğu edilir: Burada Chrome'da bozuk sayfanın kaynağının bir ekran görüntüsüdür

  1. Bu tarayıcı özgü olmak görünmüyor. Bunu Chrome ve Firefox'ta tanık oldum, ancak kullanıcılar bunu IE 7 ve üstü olarak da bildirdi.
  2. Sunucuya yüklendiğinde, bunun gerçekleşmesiyle ilişkili olmadığı görülmektedir.
  3. Sayfanın yenilenmesi, sayfayı hiç bir şey olmamış gibi normal şekilde görüntüler.
  4. Ben sunucu veya uygulama günlüklerinde ilgili bir şey görmüyorum
  5. sayfası için içerik tipi etiket <meta content="text/html; charset=utf-8" http-equiv="content-type"/>
  6. bir Alfresco olmanın aynı kapta, üzerinde dağıtılan birkaç diğer webapps vardır, ancak Bunu hiç sergilemezler.

Soruma göre, birisi daha önce bununla karşılaşıyor ve eğer öyleyse, nereye bakmaya başladığıma işaret edebilirler mi? Bu, sayfadaki yanlış içerik türü gibi bir sorun mu yoksa sunucu bir nedenden dolayı işleyemiyor mu? Veya bu Goblende veya uygulamanın kendisinde bir çerçeve hatası olabilir mi? Herhangi bir işaretçi kabul edilir. Bu noktada, sorunun nerede olduğundan emin değilim, bu yüzden ServerFault'a gidip gelmediğinden emin değildim ya da burada kalıyor.

+0

Ben de daha önce gördük. – pstanton

cevap

0

Bu, Goblen çerçevesindeki (@barnyr tarafından önerildiği gibi) gzip sıkıştırma sorunları ile ilgili görünmektedir ve muhtemelen Goblen 5.3'teki bir gerileme hatasıdır. Bir mailing list thread dan Howard alıntı yapacak:

bu belirli koşullar altında, sayfa içeriğinin bozuk GZIP akışı istemciye akışı olacağını bir hata olduğuna inanıyorum; Bu kesinlikle 5.2.6'da sabitlenmiş 'dur, ancak 5.2.5'te de sabit olduğunu düşündüm.

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

Bu tabii gzip sıkıştırmasını devre dışı bırakır, ancak bir değiş tokuş değer verme olabilir:

hızlı düzeltme uygulamanın modül sınıfının contributeApplicationDefaults yönteminde aşağıdaki yapılandırma sembolü eklemektir.

Muhtemelen ilgili sorunlar:

+0

Gzip sıkıştırmasını konteyner seviyesinde, ör. Daha fazla bilgi için http://viralpatel.net/blogs/enable-gzip-compression-in-tomcat/ veya google. – Kalle

2

Büyük olasılıkla uygulamadaki bir hata. (Çoğu hata ... programcıların başka bir şeyi suçlamalarının doğal eğilimine rağmen.)

Ancak, bu sorunu çözmek biraz zor olabilir. Standart şeyler ile başlamanızı öneririm:

  • Bu "olaylardan" birinin oluştuğu anda garip bir şey görüp görmediğini görmek için sunucu hata günlüklerine bakın.
  • Çöp verisini oluşturan isteği belirleyip tanımlayamadığınızı görmek için sunucu erişim günlüklerine bakın.
  • Tarayıcınızın hata ayıklayıcısını etkinleştirin ve hatalı isteği bu şekilde takip edip edemeyeceğinizi öğrenin.

Hatalı yanıtı üreten isteğin ne olduğunu anlayabiliyorsanız, nedenini bulmakta daha fazla çekiş elde edersiniz. Bir karakter kodlaması sorununa benzemiyor. Bu ikili veya sıkıştırılmış veriye daha çok benziyor.

+2

Uygulamanız yanıtı sıkıştırıyor mu? Tarayıcının sıkıştırıldığını söylemek için başlık içermeyen sıkıştırılmış verilere benziyor. Uygulamanızın önünde bir web sunucusu var mı? – barnyr

+0

Evet, uygulama yanıtı gzips. Ve hayır, önümüzde bir web sunucumuz yok. Alıştık, ama bu tamamen farklı bir problemdi. Sanırım gzip başlıklarıyla bir şeylere bağlı olabilirsiniz. Oraya bakmaya başlayacağım teşekkürler! – Jeshurun

1

Burada, bozuk sayfa görmemi sağlayan bir durum var. Hata sayfasında Goblen X-Tapestry-ErrorMessage adlı bir yanıt üstbilgisini ayarlar. Açıkça yeni satırlar başlıklarda (en azından bazı tarayıcılarda) izin verilmez, eğer bu başlıkta yeni bir satır varsa, anlamsız hale gelirsiniz. Ayarladığımız bir hata mesajı, yeni bir hattın var olduğu oldu. Bu üstbilgiyi ayarlamadan önce herhangi bir yeni satırı kaldırmak için değiştirdim ve sonra hata sayfası doğru gösterdi.