2013-08-14 25 views
6

isteği aşağıdaki uyarıyı almak işlendikten sonra bir yanıt başlığını güncelleme ekleme /:Tepki zaten taahhüt 8.5

com.ibm.ws.webcontainer.srt.SRTServletResponse setHeader SRVE8094W: WARNING: Cannot set header. Response already committed. 

Ben arayarak başlığını işlemek için çalışıyorum httpServletResponse.setHeader() veya httpServletResponse.addHeader() veya filterChain.doFilter()'dan sonra bir servlet filtresinden veya postHandle kod yayı önleme cihazından.

Webapp'ımı websphere 8.5'da spring 3.x kullanarak çalıştırırken bu problemle karşılaştım.

Sorun, tomcat 7.0'da üretilmiyor, bu nedenle benim tahminim, bunun Websphere ile ilgili olması. Sorun, salt bir servlet uygulamasında çoğaltılmıyor, bu nedenle benim tahminim, Spring ile ilgili olduğunu tahmin etmem.

Ben

ShallowEtagHeaderFilter does not work under WAS8 app server

ile ve

Cannot set header in JSP. Response already committed

aşina değilim ama "daha temiz" bir çözüm arıyorum.

Bu konuda bana yardımcı olan var mı?

+0

"HttpServletResponse" nesnesini, başlıkları ve "OutputStream" öğelerini belirli bir zamana kadar temizlemeyen kendi başınıza sarmak için filtrelerinizi değiştirebilirsiniz. filtreniz 'doFilter()' dan döndüğünde. –

+0

Teşekkürler, ancak şu anda bir geçici çözüm aramıyorum ve bunun bir Bahar-Websphere sorunu olduğunu düşündüğümden beri bunun için bir çözüm olduğunu umuyorum. –

+0

Başlığı "doFilter()' den önce ayarlayamıyor musunuz? –

cevap

-1

Websphere kesinlikle J2EE standardını izler, bu nedenle Tomcat'ta çalışılan her ne olursa olsun Websphere'de çalışması gerekmez. Projemde, Websphere için özel bir çok istisna/hata var, ancak Tomcat'ta bir çekicilik olarak çalışıyor. Üstbilgiyi denetleyicide ayarlamanızı öneririm. Diğer bir alternatif ise çıkış akımını denetleyicide temizlememektir (eğer bunu açıkça yaptıysanız).