JAVA | CXF JAXRS非Spring客户端

问题描述:

我们正试图为我们的cxf jaxrs服务提供一个非Spring客户端。 (不是Web客户端)JAVA | CXF JAXRS非Spring客户端

我们对自己的春天上下文以下元素(用于启用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

感谢,
Gayathri

+0

你检查[如何配置的SOAP客户端的HTTPConduit(http://cxf.apache.org/docs/client-http-transport-including-ssl-support。 HTML#ClientHTTPTransport%28includingSSLsupport%29 HowtoconfiguretheHTTPConduitfortheSOAPClient?)?它显示了如何创建'HTTPConduit',你需要的是创建'AuthorizationPolicy'并将其设置为'Negotiate'。 – 2012-04-01 07:46:58

+0

是的。但在我们的例子中,在上面的代码中它是一个安静的客户端和'clientBean',并不公开'getConduit'方法。在相关说明中,它公开'getConduitSelector'和'setConduitSelector',但不清楚是否需要设置AuthorizationPolicy。 – crankparty 2012-04-02 04:41:50

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()方法。

问候, 加布里埃尔