tomcat - (spring-boot, cxf, tomcat) 内容长度与传输编码 : chunked?

标签 tomcat soap spring-boot cxf transfer-encoding

我正在尝试修复一个问题。 http 响应 header :传输编码:分块

我们在 spring-boot + embedded-tomcat 中有一个 CXF-SOAP 网络服务。

SOAP 响应有一个 Content-Length header ,没有 Transfer-Encoding .... 我猜这是正常的吗?

不幸的是,我们有一些遗留的客户端黑客, 这似乎只适用于 Transfer-Encoding: chunked 而没有 Content-Length

有没有办法强制服务器应用程序响应Transfer-Encoding: chunked

究竟是什么决定了生成哪种响应格式?

它是否可以某种方式配置?

最佳答案

通过设置响应的 BufferSize。

response.setBufferSize() 设置响应大小的 Content-Length header 。一旦响应大小超过 bufferSize,它将回退到 Transfer-Encoding: Chunked。缓冲区大小应设置为适当的值。将其设置为更高的值会在刷新之前缓冲内存中的所有响应。所以该值应该设置为一个乐观的大小。

Tomcat 缓冲区大小默认设置为 8K

其他选项:您可以为您的服务和您想要的设置标题添加响应过滤器。

关于tomcat - (spring-boot, cxf, tomcat) 内容长度与传输编码 : chunked?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44004250/

相关文章:

java - 我的项目层次结构中的 spring 依赖项

c# - 如何在 Web 服务客户端请求中配置 SOAP XML 命名空间?

java - Soap 服务在本地工作,但在另一台服务器上引发 ClassCastException

spring-boot - Spring Boot 和 PrettyFaces : PrettyFaces Not Loading

java - Spring自定义auth过滤器和自定义jwtfilter

java - myjsp 在哪里从 eclipse 物理发布到 Tomcat?

java - 如何从终端上的java文件创建tomcat应用程序

Eclipse Tomcat 日志文件

java - 是否可以设置 Jackson 以便将未命名的包装器对象排除到 API 返回的 JSON 数组中?

java - IWAB0014E 发生意外异常。尝试使用 apache cxf2.7 创建 Web 服务时