Details
-
Bug
-
Status: Resolved
-
Major
-
Resolution: Fixed
-
2.20.1
-
None
-
Spring boot
-
Unknown
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 the url 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()