我正在尝试更改cxf HttpURLConnection
使用的HTTPTransportFactory
。
Cxf(版本2.7.3)使用HTTPTransportFactory
进行http / https请求。
HTTPTransportFactory
使用URLConnectionHTTPConduit
类型的管道。
URLConnectionHTTPConduit
有方法:createConnection
,返回HttpURLConnection
。
我需要将HttpURLConnection
替换为我自己的自定义版本,我们称之为CustomHttpURLConnection
。
我设法更改了cxf使用的TransportFactory
:
创建扩展HTTPTransportFactory
的类:CustomHTTPTransportFactory
(此时此类为空):
public class CustomTransportFactory extends HTTPTransportFactory{
}
将CustomTransportFactory
注册到正确的传输ID:在这种情况下http://schemas.xmlsoap.org/soap/http
这是我的XML:
<beans:bean id="tranpo" class="CustomTransportFactory" lazy-init="false">
<beans:property name="transportIds">
<beans:list>
<beans:value>"http://schemas.xmlsoap.org/soap/http"</beans:value>
</beans:list>
</beans:property>
</beans:bean>
但是,我需要能够将CustomHttpURLConnection
注册到cxf transport HTTPTransportFactory
。
有谁知道如何解决这个问题?
答案 0 :(得分:1)
创建一个HTTPConduitFactory并在上下文中注册它。然后,HTTPTransportFactory将使用它来创建管道,而不是创建默认的基于URLConnection的管道。这就是如何创建和使用基于HTTP Commons Async的管道。