Websphere 8.5 Liberty Profile — API сервлетов setLocale

Я использую профиль Websphere 8.5 Liberty с пакетом исправлений 1 и столкнулся со следующей проблемой, которая, похоже, нарушает API сервлета.

Заголовок ответа Content-Language не устанавливается после response.setLocale(), если тело ответа записывается в выходной поток ответа (HttpServletResponse#getOutputStream()). Он отлично работает, если вместо этого тело написано в модуле записи ответов (HttpServletResponse#getWriter())

Следующий JSP не возвращает заголовок ответа Content-Language:

<%@ page contentType="text/plain;charset=ISO-8859-1" session="false" import="java.util.*" %><% 
response.setLocale(Locale.ITALY); 

java.io.OutputStream os = response.getOutputStream();
try {
  os.write("Hello World".getBytes("ISO-8859-1"));
} finally {
  os.close();
}
%>

Обратите внимание, что JSP не должен содержать никаких символов за пределами ‹% ... %>, даже символа новой строки в конце файла. Я использую JSP здесь только для того, чтобы воспроизвести случай - конечно, писатель был бы нормальным способом. Мы используем #getOutputStream внутри нашего Java-кода.

Верно ли мое предположение, что такое поведение нарушает спецификацию сервлета? Если да, то как лучше всего сообщить об этих ошибках в IBM?

Я нашел слегка похожий отчет об ошибке с заголовком ответа Content-Language, о котором сообщалось только в отношении профиля Liberty (и он был исправлен в FP1): http://www-01.ibm.com


person ahu    schedule 19.02.2013    source источник


Ответы (1)


Я бы рекомендовал сообщать об ошибках в IBM, используя эту страницу в сообществе WASdev. Если вы не знакомы с сообществом WASdev, это также отличное место, чтобы узнать больше о профиле Liberty, и там есть несколько отличных руководств.

person Jake Stoeffler    schedule 19.02.2013
comment
Спасибо. Упомянутая страница предназначена только для бета-версий, но я смог воспроизвести проблему с 8.5.next.beta и открыл проблему. - person ahu; 05.03.2013
comment
Для выпущенных версий вы можете открыть запрос на обслуживание IBM здесь. - person Jake Stoeffler; 05.03.2013