2013-02-19 7 views
3

Я использую профиль 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

ответ

2

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

+0

Спасибо. Данная страница предназначена только для бета-версий, но я смог воспроизвести проблему с 8.5.next.beta и открыл проблему. – ahu

+0

Для выпущенных версий вы можете открыть IBM Service Request [здесь] (https://www-947.ibm.com/support/servicerequest/Home.action). –