cxf-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Manu <mekt...@gmail.com>
Subject Re: Activating WS-Addressing dynamically on selected service
Date Tue, 25 Nov 2014 10:27:53 GMT
Looking at ClientProxyFactoryBean code (method create() ), it seems I can
register some kind of listener to be aware of Client creation :

this.getServiceFactory().sendEvent(FactoryBeanListener.Event.PROXY_CREATED,
                                               classes, handler, obj);

How can I register a listener for that kind of event ?
I've looked at the doc (http://cxf.apache.org/docs/bus-configuration.html)
but it seems the extension mecanism is not covered ...
Any help would be great :)
Thanks for your time anyway.
Manuel



Le Tue Nov 25 2014 at 09:53:34, Manu <mektoub@gmail.com> a écrit :

> Yes, I know but I want to avoid to configure each service (there is a
> hundred services at least), so I was looking for something more centric ;)
> I know also I can configure the feature in the bus directly but my bus
> contains both SOAP and REST services.
> So I was looking for a "hook" in the initialization steps of the client
> and server to activate it programmatically ...
>
>
> Le Tue Nov 25 2014 at 09:50:30, Andrei Shakirin <ashakirin@talend.com> a
> écrit :
>
> Hi,
>>
>> Features are configurable in Spring as well, you can find that in samples
>> delivered with CXF distribution:
>>
>>     <jaxws:endpoint xmlns:customer="http://customerservice.example.com/"
>> id="CustomerServiceHTTP" address="http://localhost:9090
>> /CustomerServicePort" serviceName="customer:CustomerServiceService"
>> endpointName="customer:CustomerServiceEndpoint" implementor="com.example.
>> customerservice.server.CustomerServiceImpl">
>>         <jaxws:features>
>>             <bean class="org.apache.cxf.ws.addressing.
>> WSAddressingFeature"/>
>>         </jaxws:features>
>>     </jaxws:endpoint>
>>
>> ...
>>
>>     <jaxws:client id="customerService" address="jms://"
>> serviceClass="com.example.customerservice.CustomerService">
>>         <jaxws:features>
>>             <bean class="org.apache.cxf.ws.addressing.
>> WSAddressingFeature"/>
>>         </jaxws:features>
>>     </jaxws:client>
>>
>> Regards,
>> Andrei.
>>
>> > -----Original Message-----
>> > From: Manu [mailto:mektoub@gmail.com]
>> > Sent: Dienstag, 25. November 2014 09:41
>> > To: users@cxf.apache.org
>> > Subject: Re: Activating WS-Addressing dynamically on selected service
>> >
>> > Yes I've seen those lines but my services are declared through Spring
>> ...
>> >
>> >
>> > Le Tue Nov 25 2014 at 09:26:26, Andrei Shakirin <ashakirin@talend.com>
>> a
>> > écrit :
>> >
>> > > Hi,
>> > >
>> > > I guess I already sent you this peace of code:
>> > >
>> > > // Option 1
>> > > WSAddressingFeature wsa = new WSAddressingFeature(); ...
>> > > // Create client or/and server
>> > > ...
>> > > wsa.initialize(client, client.getBus()); wsa.initialize(server,
>> > > server.getBus());
>> > >
>> > > // Option 2
>> > > MyServiceImpl implementor =  new MyServiceImpl() EndpointImpl ep =
>> > > (EndpointImpl) Endpoint.create(implementor); ep.getFeatures().add(new
>> > > WSAddressingFeature()); ep.publish("http://some/address");
>> > >
>> > > ClientProxyFactoryBean factory = new ClientProxyFactoryBean();
>> > > factory.setServiceClass(MyService.class);
>> > > factory.setAddress("http://acme.come/some-service");
>> > > factory.getFeatures().add(new WSAddressingFeature()); MyService client
>> > > = (MyService) factory.create();
>> > >
>> > > Please look into http://cxf.apache.org/docs/ws-addressing.html for
>> > > further details.
>> > >
>> > > You can enable it for client and server and then dynamically switch on
>> > > / switch off the decoupled endpoint through anonymous address.
>> > >
>> > > Regards,
>> > > Andrei.
>> > >
>> > > > -----Original Message-----
>> > > > From: Manu [mailto:mektoub@gmail.com]
>> > > > Sent: Montag, 24. November 2014 16:39
>> > > > To: users@cxf.apache.org
>> > > > Subject: Re: Activating WS-Addressing dynamically on selected
>> > > > service
>> > > >
>> > > > And the way to enable WS-Addressing only for SOAP endpoint with
>> > > > something like a feature ? Is there a kind of interceptor for the
>> > > > initialization
>> > > phase of the
>> > > > client and server endpoint ?
>> > > >
>> > > >
>> > > > Le Mon Nov 24 2014 at 16:31:08, Andrei Shakirin
>> > > > <ashakirin@talend.com> a écrit :
>> > > >
>> > > > > Hi,
>> > > > >
>> > > > > If you just need to deactivate WS-Addressing decoupled endpoint
>> > > > > for client call, you can use this code:
>> > > > > ((BindingProvider)proxy).getRequestContext()
>> > > > >     .put("org.apache.cxf.ws.addressing.replyto",
>> AddressingConstants.
>> > > > > getAnonymousURI());
>> > > > >
>> > > > > And activate it again by setting appropriate endpoint address
into
>> > > > > "org.apache.cxf.ws.addressing.replyto".
>> > > > >
>> > > > > Regards,
>> > > > > Andrei.
>> > > > >
>> > > > > > -----Original Message-----
>> > > > > > From: Manu [mailto:mektoub@gmail.com]
>> > > > > > Sent: Montag, 24. November 2014 10:59
>> > > > > > To: users@cxf.apache.org
>> > > > > > Subject: Re: Activating WS-Addressing dynamically on selected
>> > > > > > service
>> > > > > >
>> > > > > > We have two needs :
>> > > > > >  - Our CXF bus contains both SOAP services and REST service.
I
>> > > > > > want to
>> > > > > activate
>> > > > > > WS-Addressing only on SOAP Services (of course :) )
>> > > > > >  - On the other hand, the asynchronous feature of WS-Addressing
>> > > > > > will not
>> > > > > be
>> > > > > > activated all the time. We have a context (accessible from
a
>> > > > > ThreadLocal) that
>> > > > > > tell us if we must activate asynchronous execution. BAsed
on
>> > > > > > this
>> > > > > context I was
>> > > > > > wondering if I can simply disable WS-Addressing dynamically.
>> > > > > > Otherwise I think I found a way by using an interceptor
which
>> > > > > > sets the
>> > > > > ReplyTo
>> > > > > > address to "http://www.w3.org/2005/08/addressing/none",
this
>> way
>> > > > > > the asynchronous execution is disabled.
>> > > > > >
>> > > > > > Tell me if I'm not clear enough ;) Manuel
>> > > > > >
>> > > > > >
>> > > > > >
>> > > > > > On Tue, Nov 18, 2014 at 10:52 PM, Andrei Shakirin
>> > > > > > <ashakirin@talend.com>
>> > > > > > wrote:
>> > > > > >
>> > > > > > > Hi,
>> > > > > > >
>> > > > > > > Could you explain your use case a bit more?
>> > > > > > > Are you activating WS-Addressing on the client side
depending
>> on
>> > > > > > > external event?
>> > > > > > >
>> > > > > > > Basically you can do something like this to activate
WSA on
>> the
>> > > > > > > client
>> > > > > > > side:
>> > > > > > >         WSAddressingFeature wsa = new WSAddressingFeature();
>> > > > > > >         wsa.initialize(client, client.getBus());
>> > > > > > >
>> > > > > > > If you need to deactivate that you need either to create
new
>> > > > > > > client instance or remove corresponded interceptors
from
>> existing
>> > > client.
>> > > > > > >
>> > > > > > > Regards,
>> > > > > > > Andrei.
>> > > > > > >
>> > > > > > > > -----Original Message-----
>> > > > > > > > From: Manu [mailto:mektoub@gmail.com]
>> > > > > > > > Sent: Montag, 17. November 2014 14:17
>> > > > > > > > To: users@cxf.apache.org
>> > > > > > > > Subject: Re: Activating WS-Addressing dynamically
on
>> selected
>> > > > > > > > service
>> > > > > > > >
>> > > > > > > > I looking at adding manually the interceptors.
>> > > > > > > > On what should I add thoses interceptors ? On
the endpoint
>> ? Can
>> > > > > > > > I had
>> > > > > > > those
>> > > > > > > > only for the current exchange ?
>> > > > > > > > We want to activate WS-Addressing dynamically
based on a
>> context
>> > > > > > > property (a
>> > > > > > > > context we manage).
>> > > > > > > > The asynchronous feature needs to be activated
only in some
>> > > > > conditions.
>> > > > > > > > How can I do that ?
>> > > > > > > > Should I add/remove the interceptors on the endpoint
based
>> on
>> > > > > > > > this
>> > > > > > > context ?
>> > > > > > > >
>> > > > > > > > Regards
>> > > > > > > > Manuel
>> > > > > > > >
>> > > > > > > >
>> > > > > > > >
>> > > > > > > > On Tue, Nov 11, 2014 at 9:09 AM, Andrei Shakirin
>> > > > > > > > <ashakirin@talend.com>
>> > > > > > > > wrote:
>> > > > > > > >
>> > > > > > > > > Hi,
>> > > > > > > > >
>> > > > > > > > > There are some options to do that:
>> > > > > > > > > a) You can add features into client factory:
>> > > > > > > > > JaxWsProxyFactoryBean factory = new
>> JaxWsProxyFactoryBean();
>> > > > > > > > > factory.setAddress("http://acme.come/some-service");
>> > > > > > > > > factory.getFeatures().add(new WSAddressingFeature());
>> > > > > > > > > MyService client = (MyService)
>> > > > > > > > > factory.create(MyService.class);
>> > > > > > > > >
>> > > > > > > > > b) You can activate WS-Addressing using policy:
>> > > > > > > > > http://cxf.apache.org/docs/ws-addressing.html
>> > > > > > > > >
>> > > > > > > > > c) You can manually add WS-Addressing interceptors,
in the
>> > > > > > > > > same way as WSAddressingFeature does that.
>> > > > > > > > >
>> > > > > > > > > Regards,
>> > > > > > > > > Andrei.
>> > > > > > > > >
>> > > > > > > > > > -----Original Message-----
>> > > > > > > > > > From: Manu [mailto:mektoub@gmail.com]
>> > > > > > > > > > Sent: Montag, 10. November 2014 16:31
>> > > > > > > > > > To: users@cxf.apache.org
>> > > > > > > > > > Subject: Activating WS-Addressing dynamically
on
>> selected
>> > > > > > > > > > service
>> > > > > > > > > >
>> > > > > > > > > > Hi,
>> > > > > > > > > >
>> > > > > > > > > > Is there a way (some class I can extend)
to activate
>> > > > > > > > > > ws-adressing
>> > > > > > > > > dynamically
>> > > > > > > > > > without configuring it int the spring
configuration
>> file.
>> > > > > > > > > > We want to be able to activate asynchronous
execution
>> based
>> > > > > > > > > > on some conditions.
>> > > > > > > > > >
>> > > > > > > > > > I've tried to create a feature and override
public void
>> > > > > > > > > initialize(Client client, Bus
>> > > > > > > > > > bus) but this method is not called when
creating a
>> client ...
>> > > > > > > > > >
>> > > > > > > > > > Does anyone have an idea ?
>> > > > > > > > > > Thanks
>> > > > > > > > > > Manuel
>> > > > > > > > >
>> > > > > > >
>> > > > >
>> > >
>>
>

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message