我正在尝试更改 cxf HTTPTransportFactory
使用的 HttpURLConnection
。
Cxf(版本 2.7.3)使用 HTTPTransportFactory
进行 http/https 请求。
HTTPTransportFactory
使用 URLConnectionHTTPConduit
类型的 Conduit。
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 传输 HTTPTransportFactory
。
有人知道如何解决这个问题吗?
最佳答案
创建一个 HTTPConduitFactory 并在上下文中注册它。然后,HTTPTransportFactory 将使用它来创建管道,而不是创建基于默认 URLConnection 的管道。这就是创建和使用基于 HTTP Commons Async 的管道的方式。
关于java - 更改 HttpTransportFactory cxf 2.7.3,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17573490/