当前位置: 首页 > 面试题库 >

Spring-WS:指定内容类型

靳富
2023-03-14
问题内容

我有一个基于的Spring Webservice
AbstractJDomPayloadEndpoint。该服务工作正常,除了我的客户端需要将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。


问题答案:

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

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



 类似资料:
  • 我正试图通过WebClient发布以获取microsoft令牌: 问题在于,microsoft无法处理内容类型:application/x-www-form-urlencoded;charset=utf-8。 Spring会自动将charset=utf-8添加到请求中。我需要把这额外的字符集去掉。我需要一个内容类型:application/x-www-form-urlencoded。这可能吗?否则

  • 我试图使用服务/调度机制发布一个JAX-RS资源。问题是传出请求的内容类型被锁定为。我看不出有什么方法可以将其更改为其他类型,例如。 RESTful webservice只使用和。这是我使用的代码: 接受标头被修改为zoo标头,foo标头添加了值,但Content-Type保持不变。我想我可以使用一个过滤器,并根据一些条件修改,甚至基于foo头,但这似乎违反直觉。 以下是请求的所有标题: 感谢您的

  • 我预计服务器上会出现此请求的错误,然后将其作为字符串与预期响应进行比较。 问题是,在执行此命令时,RestAsure会给我一个错误:java.lang.IllegalStateExcture:无法解析对象,因为响应中没有指定支持的Content-Type。Content-Type为text/html; charset=ISO-8859-1。 我已经在设置中添加了解码器,但没有帮助。 错误情况下服务

  • 我尝试用RESTAssured测试我的restendpoint。响应总是一个html文档,但是我将accept-header设置为“application/json”。 *java.lang.IllegalStateException:无法解析对象,因为响应中没有指定支持的内容类型。内容类型是'text/html;charset=utf-8'。 [main]调试org.apache.http.wi

  • 我在使用SpringWebService和SpringFramework4.3时收到以下错误。15个版本罐。 spring-ws-2.1。2.全部释放。jarspring-ws-core-2.2。2.释放。罐子 您能告诉我如何解决这个问题吗?我需要升级SpringWS-JAR还是降低SpringFramework版本。 原因:java。lang.NoSuchMethodError:org。spri

  • 在SpringMVC请求头中可以有多种内容类型吗?我要通过: 通过邮递员到我的API。目前,我得到了