Websphere 8.5 Liberty Profile - Servlet API setLocale

时间:2013-02-19 08:53:23

标签: servlets http-headers websphere locale websphere-liberty

我正在使用带有Fixpack 1的Websphere 8.5 Liberty Profile,并遇到了以下似乎违反Servlet API的问题。

如果在响应输出流(HttpServletResponse#getOutputStream())上写入响应正文,则不在response.setLocale()之后设置Content-Language响应头。如果正文被写在响应编写器上(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不得包含&lt;%...%&gt;以外的任何字符,甚至不能包含文件末尾的尾部换行符。我在这里使用JSP只是为了重现案例 - 当然作家是正常的方式。我们在Java代码中内部使用了#getOutputStream。

我的假设是否正确,这种行为违反了Servlet规范?如果是这样,向IBM报告这些错误的最佳方法是什么?

我发现了一个与Content-Language响应标题略有关联的错误报告,该报告仅针对Liberty Profile报告(并已在FP1中修复):http://www-01.ibm.com/support/docview.wss?rs=180&uid=swg1PM67523

1 个答案:

答案 0 :(得分:2)

我建议在WASdev社区使用this page向IBM报告错误。如果您不熟悉WASdev社区,那么它也是了解有关Liberty配置文件的更多信息的好地方,它有一些很棒的教程。

相关问题