Paramétrage dynamique de la ClientFactory
Bonjour à tous,
NB : Spring 2.5.6
Je souhaite changer dynamiquement l'URL d'un service CXF distant afin de l'invoquer successivement sur différents serveurs. Voici la configuration "classique" d'obtention du proxy "statique" :
Code:
1 2 3 4 5 6 7 8 9 10 11
| <bean id="locatorScannerSTProxy" class="fr.soa.locator.scanner.st.service.remote.ws.LocatorScannerSTProxy">
<property name="remote" ref="iLocatorScannerSTRemote" />
</bean>
<bean id="iLocatorScannerSTRemote" class="fr.soa.locator.scanner.st.service.remote.ws.ILocatorScannerSTRemote" factory-bean="locatorScannerSTClientFactory" factory-method="create" />
<bean id="locatorScannerSTClientFactory" class="org.apache.cxf.jaxws.JaxWsProxyFactoryBean">
<property name="serviceClass" value="fr.soa.locator.st.service.remote.ws.ILocatorScannerSTRemote" />
<property name="address" value="${locator-scanner.st.uri}" />
<property name="bus" ref="bus"/>
</bean> |
Ce que je souhaite modifier à la volée, c'est la variable locator-scanner.st.uri, donc. Mais je suppose qu'il faut bien sûr le faire avant d'instancier les autres beans (et de les récupérer dans le contexte d'application).
Y a-t-il une bonne pratique pour dynamiser cette chaîne ou dois-je en instancier les maillons moi-même afin d'aboutir au résultat escompté ?
Merci d'avance et bonne journée.
Bon, au temps pour moi...
Ce n'est pas un problème Spring, au fond :
Code:
1 2 3 4 5 6 7 8 9
| ClientProxyFactoryBean factory = new JaxWsProxyFactoryBean();
factory.getInInterceptors().add(new LoggingInInterceptor());
factory.getOutInterceptors().add(new LoggingOutInterceptor());
factory.setServiceClass(ILocatorScannerSTRemote.class);
for (String webappLocation : webappLocations) {
factory.setAddress(webappLocation);
ILocatorScannerSTRemote scanner = (ILocatorScannerSTRemote) factory.create();
... |