Spring-WS: указание Content-Type - PullRequest
       33

Spring-WS: указание Content-Type

1 голос
/ 12 октября 2010

У меня есть Spring Webservice, основанный на AbstractJDomPayloadEndpoint.Эта служба работает нормально, за исключением того, что моему клиенту нужен HTTP-заголовок Content-Type, чтобы установить правильную кодировку (в моем случае utf-8).Я не могу найти, где я могу это настроить.

Я пытался написать простой сервлет Filter:

chain.doFilter(request, response);
HttpServletResponse httpResponse = (HttpServletResponse) response;
httpResponse.setHeader("Content-Type", "text/xml; charset=utf-8");

Но это вообще не меняет заголовки.Я подозреваю, что заголовок типа контента устанавливается Spring-WS, и ответ фиксируется, поэтому ничто из того, что я установил в фильтре, не окажет влияния.

Мой сервер приложений WebLogic 9.2.3.

1 Ответ

1 голос
/ 13 октября 2010

Да, ваш код фильтра не будет выполнен, потому что к моменту завершения doFilter() ответ будет полностью зафиксирован, и вам не разрешат изменить заголовок типа контента.

Я предлагаю написать подкласс HttpServletResponseWrapper, переопределяя методы setContentType() и / или setCharacterEncoding(), чтобы установить желаемое значение. Затем вы передаете экземпляр оболочки (который оборачивает исходный ответ) в doFilter().

...