Frantisek Sichinger created CAMEL-12086:
-------------------------------------------

             Summary: Service call definition - Simple language expresion in 
uri is not being evaluated 
                 Key: CAMEL-12086
                 URL: https://issues.apache.org/jira/browse/CAMEL-12086
             Project: Camel
          Issue Type: Bug
    Affects Versions: 2.20.1
         Environment: Spring boot
            Reporter: Frantisek Sichinger


I'm facing some problems with service call definition. 

A route is supposed to send some get requests to a specific endpoint. The 
endpoint requires a parameter in its path - `GET <host>:<port>/api/.../<id>`

Route definition:

```
  routebuilder.from("direct:getSomeEntity")
        .setHeader(Exchange.HTTP_METHOD, constant(HttpMethod.GET))
        .serviceCall()
        .name("test")
        .uri("test/api/.../${fid}")
        .end()
        ...
```

This route did not work and the `${fid}` parameter was never resolved despite 
the javadoc states that the uri may contain simple language expressions 

See - 
`https://github.com/apache/camel/blob/master/camel-core/src/main/java/org/apache/camel/model/cloud/ServiceCallDefinition.java#L187`

Route execution:
```
camelContext.createFluentProducerTemplate()
        .withHeader("fid", id)
        .to("direct:getSomeEntity")
        ...
```

Eventually i got it work with following workaround

```
.serviceCall()
        .name("test")
        .expression()                                   
.simple("http4://${header.CamelServiceCallServiceHost}:${header.CamelServiceCallServicePort}/api/.../${fid}")
        .end()
```






--
This message was sent by Atlassian JIRA
(v6.4.14#64029)

Reply via email to