[
https://issues.apache.org/jira/browse/CXF-4747?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13635101#comment-13635101
]
Mike Noordermeer commented on CXF-4747:
---------------------------------------
{quote}
FYI, the following should actually work, note the factory name:
{quote}
This works, but does not set the bus. I have no idea how I can reference the
default bus created by CXF. I can create one myself, but that one will use a
new Spring context, and not the existing application context, and will
therefore not pick up http conduits defined in the current Spring context.
{quote}
Also note that if you create WebClient from the code and it is initialized with
a reference to the existing Spring configuration, then a matching HttpConduit
loaded from that configuration will be activated.
{quote}
You cannot refer the existing Spring context when creating a WebClient from
code. You can only point it to a new configfile and then it will create a new
Bus from that configfile (hence you end up with multiple CXF busses if other
parts of your application also use CXF).
{quote}Also, from the code, you can explicitly create a Spring bus and then set
it on JAXRSClientFactoryBean and call createWebClient on it...
{quote}
Maybe, but I have no idea how to refer to the globally created default CXF bus.
What I would like is to be able to use a WebClient just like I can use a
jaxrs:client, including the http conduit. So I would like to have 1 Spring
config file, with my client definition as well as my http conduit. IIRC it
seemed like that was impossible (but it's a couple of months ago I looked into
this, and I may have missed something, so please correct me if I'm wrong).
> Support easier configuration of Spring bus with WebClient
> ---------------------------------------------------------
>
> Key: CXF-4747
> URL: https://issues.apache.org/jira/browse/CXF-4747
> Project: CXF
> Issue Type: Improvement
> Components: JAX-RS
> Affects Versions: 2.7.1
> Reporter: Mike Noordermeer
> Priority: Minor
>
> The current {{WebClient.create()}} methods only support either using a fresh
> bus, or creating a new bus from a Spring config file. It should be possible
> to reuse an existing Spring bus, so you can for instance enter your
> {{<http:conduit>}} elements in your usual Spring config.
> The same issue was asked before on the [mailing
> list|http://mail-archives.apache.org/mod_mbox/cxf-users/201001.mbox/%3cd9d39d1e52c5514c94de9b5e928c72db032bc...@mail02.bedford.progress.com%3E],
> but without an answer.
> I have found a workaround, but I don't find it too pretty:
> {code:xml}
> <http:conduit name="*.http-conduit">
> <http:client ConnectionTimeout="3000000" ReceiveTimeout="3000000" />
> <http:tlsClientParameters>
> <sec:keyManagers keyPassword="pass">
> <sec:keyStore resource="mykeystore.jks" password="pass"
> type="JKS" />
> </sec:keyManagers>
> </http:tlsClientParameters>
> </http:conduit>
> <bean id="myWebClientFactory"
> class="org.apache.cxf.jaxrs.spring.JAXRSClientFactoryBeanDefinitionParser.JAXRSSpringClientFactoryBean">
> <property name="address" value="${myurl}" />
> <property name="providers">
> <list>
> <bean
> class="org.codehaus.jackson.jaxrs.JacksonJaxbJsonProvider" />
> </list>
> </property>
> </bean>
> <bean id="myWebClient" factory-bean="myWebClientFactory"
> factory-method="createWebClient" />
> {code}
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira