Я использую профиль Liberty Profile Websphere 8.5 с Fixpack 1 и столкнулся с следующей проблемой, которая, по-видимому, нарушает API сервлета.Websphere 8.5 Liberty Profile - Servlet API setLocale
Заголовок ответа на контентный язык не задается после 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/support/docview.wss?rs=180&uid=swg1PM67523
Спасибо. Данная страница предназначена только для бета-версий, но я смог воспроизвести проблему с 8.5.next.beta и открыл проблему. – ahu
Для выпущенных версий вы можете открыть IBM Service Request [здесь] (https://www-947.ibm.com/support/servicerequest/Home.action). –