0
Ich möchte Adresse jedes Mal, wenn ich meine Endpunkt Bean erreichen. Wenn ich setAddress das erste Mal aufruft, funktioniert es, nachdem diese Adresse und die Endpunkt-URL sich geändert haben, aber ws an die ersten Adressen gegangen ist. hier ist mein CodeCamel CxfEndpoint gesetzt Adresse funktioniert nicht nach dem ersten Anruf
@Bean
public CxfEndpoint xWSwithoutAddress() {
final CxfEndpoint endpoint = new CxfEndpoint();
endpoint.setServiceClass(IntegrationSoap.class);
return endpoint;
}
@Bean
@Scope(value="prototype",proxyMode = ScopedProxyMode.TARGET_CLASS)
public CxfEndpoint xWS() {
XSettings settings = configFileManager.readSettings(XSettings.class);
final CxfEndpoint endpoint = xWSwithoutAddress();
endpoint.setAddress(settings.getWsdlAddress());
return endpoint;
}
und Strecke
from("direct:getEbysServices")
.to("cxf:bean:xWS?wrapped=true&loggingFeatureEnabled=true");
Sie stellen sicher, dass jedes Mal, wenn Sie eine Verbindung zum CXFendPoint herstellen möchten, eine neue Bean aus dem Spring-Kontext angefordert wird? Es funktioniert, wenn Sie direkt 'endpoint = xWSwithoutAddress(); endpoint.setAddress (settings.getWsdlAddress()); 'als neue Instanz anstelle von @Bean? – pedrofb
Sie könnten das [dynamische Routing] (http://camel.apache.org/how-to-use-a-dynamic-uri-in-to.html) verwenden. In Ihrer Route können Sie die Eigenschaft 'wsdlURL' Ihres cxf-endpoint als dokumentiert [hier] (http://camel.apache.org/cxf.html) ändern. – Frank
neue Instanz funktioniert nicht korrekt. @pedrofb – Utk12