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
答
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()方法。
问候, 加布里埃尔
你检查[如何配置的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
是的。但在我们的例子中,在上面的代码中它是一个安静的客户端和'clientBean',并不公开'getConduit'方法。在相关说明中,它公开'getConduitSelector'和'setConduitSelector',但不清楚是否需要设置AuthorizationPolicy。 – crankparty 2012-04-02 04:41:50