[
https://issues.apache.org/jira/browse/CAMEL-12086?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Frantisek Sichinger updated CAMEL-12086:
----------------------------------------
Description:
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:
{noformat}
routebuilder.from("direct:getSomeEntity")
.setHeader(Exchange.HTTP_METHOD, constant(HttpMethod.GET))
.serviceCall()
.name("test")
.uri("test/api/.../${fid}")
.end()
...
{noformat}
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:
{noformat}
camelContext.createFluentProducerTemplate()
.withHeader("fid", id)
.to("direct:getSomeEntity")
...
{noformat}
Eventually i got it work with following workaround
{noformat}
.serviceCall()
.name("test")
.expression()
.simple("http4://${header.CamelServiceCallServiceHost}:${header.CamelServiceCallServicePort}/api/.../${fid}")
.end()
{noformat}
was:
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()
```
> 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:
> {noformat}
> routebuilder.from("direct:getSomeEntity")
> .setHeader(Exchange.HTTP_METHOD, constant(HttpMethod.GET))
> .serviceCall()
> .name("test")
> .uri("test/api/.../${fid}")
> .end()
> ...
> {noformat}
> 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:
> {noformat}
> camelContext.createFluentProducerTemplate()
> .withHeader("fid", id)
> .to("direct:getSomeEntity")
> ...
> {noformat}
> Eventually i got it work with following workaround
> {noformat}
> .serviceCall()
> .name("test")
> .expression()
> .simple("http4://${header.CamelServiceCallServiceHost}:${header.CamelServiceCallServicePort}/api/.../${fid}")
> .end()
> {noformat}
--
This message was sent by Atlassian JIRA
(v6.4.14#64029)