【问题标题】:Websphere 8.5 Liberty Profile - Servlet API setLocaleWebsphere 8.5 Liberty Profile - Servlet API setLocale
【发布时间】:2013-02-03 21:21:18
【问题描述】:

我在使用带有 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 不得包含 之外的任何字符,甚至不能在文件末尾包含尾随换行符。我在这里使用 JSP 只是为了重现该案例 - 当然,作家将是正常的方式。我们在 Java 代码内部使用了#getOutputStream。

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

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

【问题讨论】:

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


    【解决方案1】:

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

    【讨论】:

    • 谢谢。提到的页面仅适用于 beta 版本,但我能够重现 8.5.next.beta 的问题并打开了一个问题。
    • 对于已发布的版本,您可以打开 IBM 服务请求here
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-12-25
    • 2013-07-31
    • 2017-10-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多