【发布时间】:2016-07-03 11:26:33
【问题描述】:
Web 应用程序正在使用 apache cxf 客户端向远程 Web 服务发送请求。
当这个 Web 应用程序部署在 Tomcat 上时,一切正常。
此Web应用程序部署在JBOSS上且主体(信封)大小大于8 KB时,请求发送失败;生成了以下错误:
17:57:15,387 WARNING [org.apache.cxf.phase.PhaseInterceptorChain (ConnectorExecutor-21) Interceptor for xxx#{http://cxf.apache.org/jaxws/dispatch}Invoke has thrown exception, unwinding now: org.apache.cxf.interceptor.Fault: Could not send Message.
at org.apache.cxf.interceptor.MessageSenderInterceptor$MessageSenderEndingInterceptor.handleMessage(MessageSenderInterceptor.java:64)
at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:263)
at org.apache.cxf.endpoint.ClientImpl.doInvoke(ClientImpl.java:531)
at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:461)
at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:364)
at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:317)
at org.apache.cxf.endpoint.ClientImpl.invokeWrapped(ClientImpl.java:352)
at org.apache.cxf.jaxws.DispatchImpl.invoke(DispatchImpl.java:381)
at org.apache.cxf.jaxws.DispatchImpl.invoke(DispatchImpl.java:241)
...
at java.util.concurrent.FutureTask.run(Unknown Source) [rt.jar:1.7.0_45]
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) [rt.jar:1.7.0_45]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) [rt.jar:1.7.0_45]
at java.lang.Thread.run(Unknown Source) [rt.jar:1.7.0_45]
Caused by: org.apache.cxf.transport.http.HTTPException: HTTP response '411: Length Required' when communicating with ...
at org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.handleResponseInternal(HTTPConduit.java:1554)
at org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.handleResponse(HTTPConduit.java:1493)
at org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.close(HTTPConduit.java:1401)
at org.apache.cxf.transport.AbstractConduit.close(AbstractConduit.java:56)
at org.apache.cxf.transport.http.HTTPConduit.close(HTTPConduit.java:648)
at org.apache.cxf.interceptor.MessageSenderInterceptor$MessageSenderEndingInterceptor.handleMessage(MessageSenderInterceptor.java:62)
... 17 more
HTTP 流模式似乎已切换到 chunked。
您如何看待第一个假设?
可以在apache cxf官方文档中找到,可以提供一个spring配置文件来改变cxf客户端的行为。
配置文件内容是什么?
【问题讨论】:
标签: java spring jboss http-headers cxf