java - 更改 HttpTransportFactory cxf 2.7.3

标签 java apache web-services cxf

我正在尝试更改 cxf HTTPTransportFactory 使用的 HttpURLConnection

Cxf(版本 2.7.3)使用 HTTPTransportFactory 进行 http/https 请求。 HTTPTransportFactory 使用 URLConnectionHTTPConduit 类型的 Conduit。 URLConnectionHTTPConduit 有方法:createConnection,它返回HttpURLConnection。 我需要将 HttpURLConnection 替换为我自己的自定义连接,我们将其称为 CustomHttpURLConnection

我设法更改了 cxf 使用的 TransportFactory:

  1. 创建扩展 HTTPTransportFactory 的类:CustomHTTPTransportFactory(目前该类为空):

    public class CustomTransportFactory extends HTTPTransportFactory{
    }
    
  2. 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/

相关文章:

java - 圆形环绕文字需要稍微调整

java - 这里的 != 运算符有什么问题?

java - Apache Commons StringUtils.repeat() 是如何工作的以及为什么它以这种方式工作?

java - Spring @AutoWired 始终为 null

带有引用参数的 C# Web 服务

现场 Java Connect 数据库

java - java中的树来存储文本中的单词

php - 使用 mod_rewrite 删除 .php 扩展并同时清理 GET url

apache - 无法通过Hive在Tez上执行MapReduce作业

jquery - 如何添加Access-Control-Allow-Origin?