Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/376.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/heroku/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在Wildfly 8中禁用JAX-WS客户端的分块传输编码_Java_Cxf_Wildfly_Jax Ws_Chunked - Fatal编程技术网

Java 在Wildfly 8中禁用JAX-WS客户端的分块传输编码

Java 在Wildfly 8中禁用JAX-WS客户端的分块传输编码,java,cxf,wildfly,jax-ws,chunked,Java,Cxf,Wildfly,Jax Ws,Chunked,我在Wildfly 8上使用JAX-WS编写SOAP客户端 向我的服务器发送小消息时,客户端工作正常。当消息太大时,会添加一个标题“Transfer Encoding:chunked”,服务器将停止接受消息 由于我无法控制服务器部分,我正在寻找一种方法,告诉Wildfly停止对大消息进行分块。 我在这里找到了WebSphere的解决方案: 我已经配置了一个处理程序。我已经验证了每个传出请求都会调用此处理程序。看起来是这样的: public boolean handleMessage(SOAPMe

我在Wildfly 8上使用JAX-WS编写SOAP客户端

向我的服务器发送小消息时,客户端工作正常。当消息太大时,会添加一个标题“Transfer Encoding:chunked”,服务器将停止接受消息

由于我无法控制服务器部分,我正在寻找一种方法,告诉Wildfly停止对大消息进行分块。

我在这里找到了WebSphere的解决方案:

我已经配置了一个处理程序。我已经验证了每个传出请求都会调用此处理程序。看起来是这样的:

public boolean handleMessage(SOAPMessageContext smc) {
  ctx.put(*HTTPConstants.CHUNKED*, "false");
  return true;
}

因为我使用的是Wildfly,而不是WebSphere,所以在我的类路径上没有HTTPConstants.CHUNKED有人知道我可以用什么来告诉Wildlfy停止分块邮件吗?这甚至可以通过使用处理程序实现吗?

据我所知,客户端无权使用或不使用HTTP分块。客户端应该同时接受这两个选项,并在服务器端做出最终决定

理解分块不是一种格式,而是一种传输编码,这一点很重要。让服务器选择传输大数据的最佳方式听起来很自然(压缩是一种可能的选择,分块是另一种选择)


参见

我不确定在这种情况下是否属实。客户机是Wildlfy8实例,它向Soap Web服务发出请求。此请求消息大于4KB,这使得ApacheCXF决定将其分块发送。服务器不会告诉您此请求应该是分块的。然而,您是对的,客户机无法控制服务器是否应该分块响应。这取决于服务器。我的问题在于服务器似乎不支持分块的传入消息。很抱歉,我没有发现请求(而不是响应)的soap消息太大。在这种情况下,您是对的,允许客户端对其消息进行分块。现在,为了解决您的问题,知道JAX-WS实现是Wildfly中的CXF(至少从v8开始),我建议您1)以编程方式修改CXF http管道,或2)覆盖默认的“CXF.client.allowChunking”和“CXF.client.chunkingThreshold”系统属性,请参阅: