2013-08-14 7 views
6

Podczas dodawania/aktualizowania nagłówek odpowiedzi po wniosek został przetworzony pojawia się następujące ostrzeżenie:Response już popełnione przy użyciu Wiosna 3.x na WebSphere 8.5

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

Próbuję manipulować nagłówek, wywołując httpServletResponse.setHeader() lub httpServletResponse.addHeader() z poziomu filtru serwletów po filterChain.doFilter() lub przez przechwytywacz sprężyny kodu postHandle.

Napotkano ten problem podczas uruchamiania mojej aplikacji webowej za pomocą wiosny 3.x na serwerze WWW 8.5.

Problem nie jest reprodukowany na tomcat 7.0, więc domyślam się, że jest związany z Websphere. Problem nie został odtworzony w czystej aplikacji serwletowej, dlatego domyślam się, że jest on związany z wiosną.

znam

ShallowEtagHeaderFilter does not work under WAS8 app server

iz

Cannot set header in JSP. Response already committed

ale szukam na "czystsze" rozwiązania.

Czy ktoś może mi w tym pomóc?

+0

Możesz zmodyfikować swój filtr, aby zawinąć obiekt 'HttpServletResponse' na własny, który nie opróżni nagłówków i' OutputStream' do pewnego określonego czasu, np. kiedy twój filtr powróci z 'doFilter()'. –

+0

Dziękuję, ale obecnie nie szukam obejścia, a ponieważ uważam, że jest to kwestia Spring-Websphere, nadal mam nadzieję, że istnieje na to rozwiązanie. –

+0

Nie możesz ustawić nagłówka przed 'doFilter()'? –

Odpowiedz

-1

Websphere ściśle przestrzega standardu J2EE, dlatego wszelkie działania Tomcat nie muszą koniecznie działać w Websphere. W moim projekcie uzyskałem wiele wyjątków/błędów, które są szczególnie ważne dla Websphere, ale działa jako urok w Tomcat. Proponuję ustawić nagłówek w kontrolerze. Innym alternatywnym rozwiązaniem nie jest opróżnianie strumienia wyjściowego w kontrolerze (jeśli zrobiłeś to jawnie).

Powiązane problemy