[ 
https://issues.apache.org/jira/browse/CAMEL-13922?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Jan Bednar closed CAMEL-13922.
------------------------------
    Resolution: Invalid

Please read that section in documentation again. You are missing *simple* after 
*enrich*.

Feel free to ask on mailing list, if following code will not work.
{code:java}
.enrich()
    .simple("http4:${header.calendar-uri}")
    .aggregationStrategy((oldExchange, newExchange) -> {
        oldExchange.getIn().setBody(newExchange.getIn().getBody());
        return oldExchange;
    })
{code}

> http4 does not recognize part of URI provided with header
> ---------------------------------------------------------
>
>                 Key: CAMEL-13922
>                 URL: https://issues.apache.org/jira/browse/CAMEL-13922
>             Project: Camel
>          Issue Type: Bug
>          Components: camel-http4
>    Affects Versions: 2.24.1
>            Reporter: Vyacheslav Boyko
>            Priority: Major
>
> I'm trying to describe a route with Enrich EIP. It should be done as:
> 1) template producer gives an year (2019, 2012 etc), set it in header and 
> push the message into route
> 2) from that endpoint message should be enriched from URI composed by 
> template:
> {code:java}
> from("seda:calendar-update-process")
>         .setHeader("calendar-uri", 
> simple("xmlcalendar.ru/data/ru/${header["+HEADER_YEAR+"]}/calendar.xml"))
>         .log(LoggingLevel.WARN, log, "Updating calendar from url: 
> ${header.calendar-uri}")
>         .enrich("http4:$\\{header.calendar-uri\\}", (oldExchange, 
> newExchange) -> {
>             oldExchange.getIn().setBody(newExchange.getIn().getBody());
>             return oldExchange;
>         })
> {code}
> {color:#6a8759}{color}{color:#6a8759}as described on{color} 
> [https://camel.apache.org/manual/latest/content-enricher.html] in part named 
> 'Using dynamic uris'
>  
> But it cannot parse that expression. I get an error:
>  
> {code:java}
> org.apache.camel.ResolveEndpointFailedException: Failed to resolve endpoint: 
> http4://$%5C%7Bheader.calendar-uri%5C%7D due to: Expected scheme-specific 
> part at index 6: http4:
>       at 
> org.apache.camel.impl.DefaultCamelContext.getEndpoint(DefaultCamelContext.java:753)
>       at 
> org.apache.camel.util.CamelContextHelper.getMandatoryEndpoint(CamelContextHelper.java:80)
>       at 
> org.apache.camel.util.ExchangeHelper.resolveEndpoint(ExchangeHelper.java:91)
>       at 
> org.apache.camel.processor.Enricher.resolveEndpoint(Enricher.java:299)
>       at org.apache.camel.processor.Enricher.process(Enricher.java:165)
>       at 
> org.apache.camel.processor.RedeliveryErrorHandler.process(RedeliveryErrorHandler.java:548)
>       at 
> org.apache.camel.processor.CamelInternalProcessor.process(CamelInternalProcessor.java:201)
>       at org.apache.camel.processor.Pipeline.process(Pipeline.java:138)
>       at org.apache.camel.processor.Pipeline.process(Pipeline.java:101)
>       at 
> org.apache.camel.processor.CamelInternalProcessor.process(CamelInternalProcessor.java:201)
>       at 
> org.apache.camel.component.seda.SedaConsumer.sendToConsumers(SedaConsumer.java:298)
>       at 
> org.apache.camel.component.seda.SedaConsumer.doRun(SedaConsumer.java:210)
>       at 
> org.apache.camel.component.seda.SedaConsumer.run(SedaConsumer.java:155)
>       at 
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
>       at 
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
>       at java.lang.Thread.run(Thread.java:748)
> Caused by: java.net.URISyntaxException: Expected scheme-specific part at 
> index 6: http4:
>       at java.net.URI$Parser.fail(URI.java:2848)
>       at java.net.URI$Parser.failExpecting(URI.java:2854)
>       at java.net.URI$Parser.parse(URI.java:3057)
>       at java.net.URI.<init>(URI.java:673)
>       at 
> org.apache.camel.component.http4.HttpComponent.createEndpoint(HttpComponent.java:269)
>       at 
> org.apache.camel.impl.DefaultComponent.createEndpoint(DefaultComponent.java:130)
>       at 
> org.apache.camel.impl.DefaultCamelContext.getEndpoint(DefaultCamelContext.java:706)
>       ... 15 common frames omitted
> {code}
>  
>  



--
This message was sent by Atlassian Jira
(v8.3.2#803003)

Reply via email to