[ 
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

Reply via email to