[ https://issues.apache.org/jira/browse/CAMEL-12252?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16403816#comment-16403816 ]
Xilai Dai commented on CAMEL-12252: ----------------------------------- [~aldettinger] Could you please backport the fixes to the camel-2.21.x branch (or even earlier branches)? > Dynamic setting the DESTINATION_OVERRIDE_URL doesn't work on CXFRS producer > --------------------------------------------------------------------------- > > Key: CAMEL-12252 > URL: https://issues.apache.org/jira/browse/CAMEL-12252 > Project: Camel > Issue Type: Bug > Components: camel-cxfrs > Affects Versions: 2.17.0, 2.18.5, 2.19.4, 2.20.2 > Environment: Java 8 > Reporter: Xilai Dai > Assignee: Alex Dettinger > Priority: Major > Fix For: 2.22.0 > > > Given the sample MyProcessor, setting the DESTINATION_OVERRIDE_URL > dynamically during the invoke: > {code} > public void process(Exchange exchange) throws Exception { > String env = (String)exchange.getIn().getHeader("Environnement"); > if (env.equalsIgnoreCase("DEV")) { > exchange.getIn().setHeader(exchange.DESTINATION_OVERRIDE_URL, > "http://esbdev11.local:8080/server1/metaServlet"); > } else { > exchange.getIn().setHeader(exchange.DESTINATION_OVERRIDE_URL, > "http://esblab11.local:8080/server2/metaServlet"); > } > } > {code} > Given the sample Route: > {code} > from("cxfrs:bean:MyREST") > .process(new HeaderProcessor()) > .setHeader("Environnement") > .simple("${header.http_query[env][0]}") > .process(new MyProcessor()) > .setHeader(org.apache.camel.Exchange.HTTP_METHOD, constant("GET")) > .setHeader(org.apache.camel.Exchange.ACCEPT_CONTENT_TYPE, > constant("*/*")) > .setHeader(org.apache.camel.Exchange.HTTP_PATH, constant("/")) > .to("cxfrs:bean:restClient?maxClientCacheSize=5"); > {code} > Send request to cxfrs:bean:MyREST with different http header "dev", then the > cxfrs:bean:restClient always make call to the last setting Address. > (Only it works as expected when setting maxClientCacheSize=0 on the > cxfrs:bean:restClient) > There is no this issue on Camel 2.16.x, but start problem from Camel 2.17.x > and later versions. Investigations show that the CxfRsEndpoint becoming > Singleton after CAMEL-9628, that explain why the last Address setting always > applied. -- This message was sent by Atlassian JIRA (v7.6.3#76005)