【问题标题】:Spring-WS : specifying the Content-TypeSpring-WS:指定 Content-Type
【发布时间】:2011-04-24 07:25:24
【问题描述】:

我有一个基于 AbstractJDomPayloadEndpoint 的 Spring Web 服务。该服务工作正常,除了我的客户端需要将 HTTP 标头 Content-Type 设置为正确的字符集(在我的情况下为 utf-8)。我找不到可以配置的地方。

我尝试编写一个简单的 servlet Filter

chain.doFilter(request, response);
HttpServletResponse httpResponse = (HttpServletResponse) response;
httpResponse.setHeader("Content-Type", "text/xml; charset=utf-8");

但这根本不会改变标题。我怀疑是Spring-WS设置的内容类型头,并且响应已提交,所以我在过滤器中设置的任何内容都不会产生影响。

我的应用服务器是 WebLogic 9.2.3。

【问题讨论】:

    标签: java servlets http-headers spring-ws


    【解决方案1】:

    是的,您的过滤器代码将失败,因为在 doFilter() 完成时,响应将已完全提交,您将无法更改内容类型标头。

    我建议编写HttpServletResponseWrapper 的子类,覆盖setContentType() 和/或setCharacterEncoding() 方法以将值设置为您想要的值。然后将包装器的实例(包装原始响应)传递给doFilter()

    【讨论】:

    • 谢谢!为什么我没有想到 HttpServletResponseWrapper ?不过,如果有一种方法可以将 Spring-WS 配置为直接使用正确的编码,那就太好了……
    猜你喜欢
    • 1970-01-01
    • 2019-08-05
    • 1970-01-01
    • 2012-01-21
    • 2011-01-23
    • 1970-01-01
    • 1970-01-01
    • 2011-06-18
    • 2019-04-15
    相关资源
    最近更新 更多