【问题标题】:CXF HTTP Conduit Java ConfigurationCXF HTTP 管道 Java 配置
【发布时间】:2018-12-20 16:56:13
【问题描述】:

我正在尝试了解如何使用 java 注释而不是使用 spring.xml 来配置 http cxf 管道。

这是我要转换为 java bean 的 xml。

<http-conf:conduit name="*.http-conduit">
        <http-conf:client ConnectionTimeout="${http.connection.timeout:300000}"
                          ReceiveTimeout="${http.read.timeout:300000}"/>
        <http-conf:tlsClientParameters
                disableCNCheck="${transport.tslClientParameters.disableCNCheck}">
            <sec:trustManagers>
                <sec:keyStore type="${transport.tslClientParameters.storeType}"
                              resource="${transport.tslClientParameters.trustStore}"
                              password="${transport.tslClientParameters.trustStorePassword}"/>
            </sec:trustManagers>
            <sec:cipherSuitesFilter>
                <sec:include>.*_EXPORT_.*</sec:include>
                <sec:include>.*_EXPORT1024_.*</sec:include>
                <sec:include>.*_WITH_DES_.*</sec:include>
                <sec:include>.*_WITH_AES_.*</sec:include>
                <sec:include>.*_WITH_NULL_.*</sec:include>
                <sec:exclude>.*_DH_anon_.*</sec:exclude>
            </sec:cipherSuitesFilter>
        </http-conf:tlsClientParameters>
    </http-conf:conduit>

到目前为止,我已经尝试查看 Apache CXF Documentation 中的文档,但仍然没有给出太多线索。

【问题讨论】:

    标签: java cxf http-conduit


    【解决方案1】:

    我知道这是一篇旧帖子,但由于我遇到了同样的问题,这就是我所做的:

    public <T> T createSoapClient(Class<T> serviceClass, URL endpoint, String namespace)
    {
        ClientProxyFactoryBean factory = new ClientProxyFactoryBean();
        Bus bus = new ExtensionManagerBus(null, null, Bus.class.getClassLoader());
        factory.setBus(bus);
        factory.setServiceClass(serviceClass);
        factory.setServiceName(new QName(namespace, serviceClass.getSimpleName()));
        factory.setAddress(endpoint.toString());
        factory.getServiceFactory().getServiceConfigurations().add(0, new XFireCompatabilityConfiguration());
        factory.setDataBinding(new AegisDatabinding());
        @SuppressWarnings("unchecked")
        T soapClient = (T) factory.create();
        Client client = ClientProxy.getClient(soapClient);
        client.getRequestContext().put(Message.MAINTAIN_SESSION, true);
        HTTPClientPolicy policy = new HTTPClientPolicy();
        policy.setReceiveTimeout(600000);
        policy.setAllowChunking(false);
        HTTPConduit conduit = (HTTPConduit) client.getConduit();
        conduit.setClient(policy);
        return soapClient;
    }
    

    感谢:https://www.programcreek.com/java-api-examples/?api=org.apache.cxf.transport.http.HTTPConduit

    【讨论】:

      猜你喜欢
      • 2015-10-17
      • 2014-02-09
      • 2020-01-02
      • 1970-01-01
      • 1970-01-01
      • 2021-07-25
      • 1970-01-01
      • 2023-03-28
      • 1970-01-01
      相关资源
      最近更新 更多