【问题标题】:JAVA | CXF JAXRS Non-Spring client爪哇 | CXF JAXRS 非 Spring 客户端
【发布时间】:2012-03-30 13:38:30
【问题描述】:

我们正在尝试为我们的 cxf jaxrs 服务提供一个非 Spring 客户端。 (不是网络客户端)

我们的 spring-context 中有以下元素(用于启用 kerberos 身份验证):

<http:conduit name="*.http-conduit">
        <http:authorization>
            <sec:AuthorizationType>Negotiate</sec:AuthorizationType>
        </http:authorization>
</http:conduit>

知道如何将其转换为 java 代码吗?

示例客户端代码:

JAXRSClientFactoryBean clientBean = new JAXRSClientFactoryBean();
clientBean.setResourceClass(ServiceClassName.class);
clientBean.setAddress(restful-service-url);

CXF 文档没有明确说明这一点: http://cxf.apache.org/docs/jax-rs-client-api.html#JAX-RSClientAPI-CreatingclientsprogrammaticallywithnoSpringdependencies

谢谢,
加亚特里

【问题讨论】:

  • 你检查过How to configure the HTTPConduit for the SOAP Client吗?它展示了如何创建HTTPConduit,您需要创建AuthorizationPolicy 并将其设置为Negotiate
  • 是的。但在我们的例子中,它是一个安静的客户端,上面代码中的“clientBean”没有公开“getConduit”方法。在相关说明中,它公开了 'getConduitSelector' 和 'setConduitSelector' ,但不清楚是否需要设置 AuthorizationPolicy。

标签: java client cxf jax-rs kerberos


【解决方案1】:

dma_k 将您指向 SOAP 服务的正确信息。如果您正在寻找 REST 服务的直接答案,请查看http://cxf.apache.org/docs/jax-rs-client-api.html#JAX-RSClientAPI-ConfiguringClientsatRuntime

YourService proxy = JAXRSClientFactory.create(YourService.class);
ClientConfiguration config = WebClient.getConfig(proxy);
HTTPConduit conduit1 = (HTTPConduit)config.getConduit();
System.out.println(conduit1.getClient().getProxyServer());

此代码允许您访问 REST 服务的管道,然后根据需要对其进行配置。您只需要通过 WebClient.getConfig() 方法。

问候, 加布里埃尔

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-08-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-10-16
    • 2018-03-18
    • 2019-01-23
    相关资源
    最近更新 更多