Four Stars

Dynamic Rest Endpoint in tRestRequest Component

Hi,

 

I'm new with Talend ESB. I wonder is it possible to set dynamic rest endpoint on tRestRequest component?

 

I've tried to set rest endpoint with context and globalMap but the job failure to start when I deploy it on apache karaf (runtime esbse) container. When I check using command list-endpoints on apache karaf console, the job that I deployed listen on address becomes "/context.service_url" which supposed to be "http://10.50.50.32:8090". Any idea how to solve this?

 

Thanks.

Roy.

8 REPLIES
Twelve Stars

Re: Dynamic Rest Endpoint in tRestRequest Component

It sounds like you are mixing String constants with String variables incorrectly. Anything within quotes should be considered a constant. A context variable cannot be included inside those quotes. If you want to mix and match you need to concatenate like below....

 

"/mybasepath/"+context.MyVariable

You should also realise that once a service has started in your runtime, you cannot change the URL without restarting the service first.

Rilhia Solutions
Four Stars

Re: Dynamic Rest Endpoint in tRestRequest Component

Hi,

 

Sorry my mistake on writing the question. I don't used quotes on my talend rest endpoint, below is the step I've done:

tRestRequest end point settingtRestRequest end point setting

TestWS.cfg file inside karaf etc folderTestWS.cfg file inside karaf etc folder

Job active on karafJob active on karaf

list-endpoints command resultlist-endpoints command result

noticed on the yellow marked result. At this point the port is not listening, I cannot access the service.

 

Thanks.

Four Stars

Re: Dynamic Rest Endpoint in tRestRequest Component

Hi,

 

Anyone can help me with this issue?

 

Thanks.

Four Stars

Re: Dynamic Rest Endpoint in tRestRequest Component

Did you solve this problem? I would sure like to know how. 

 

I think I am seeing the same thing. For Studio on Tomcat, I can use REST Endpoint=context.deployedhostname which is "http://localhost:8080" and it works fine. But when I deploy to ESB, context.deployedhostname is literal, not the value of the variable! In karaf the hostname and port are supposed to be assigned by the server, and if you specify them, it will overwrite the server defaults, and probably not match the server firewall, SSL, etc. 

 

So really you need to use a context variable for the endpoint, but it does not work in the karaf container. 

 

Furthermore I found the ESB port number will be overwritten and use a random number if Rest Endpoint is a null string. So it seems this component is really broken. 

Moderator

Re: Dynamic Rest Endpoint in tRestRequest Component

Hello,

We have already redirected your issue to our ESB experts and will keep you posted.

Best regards

Sabrina

--
Don't forget to give kudos when a reply is helpful and click Accept the solution when you think you're good with it.
Moderator

Re: Dynamic Rest Endpoint in tRestRequest Component

Hello,

Here exists a new feature jira issue:https://jira.talendforge.org/browse/TESB-11530.

Please take a look at it and feel free to let us know your concern.

Thanks for your time.

Best regards

Sabrina

 

 

 

--
Don't forget to give kudos when a reply is helpful and click Accept the solution when you think you're good with it.
Four Stars

Re: Dynamic Rest Endpoint in tRestRequest Component

Thanks. That's the same bug for sure. It was logged 4 months ago, but there does not seem to be progress yet. Everyplace else in TOS that substitution would work, seems like it should be fixed ASAP.
Moderator

Re: Dynamic Rest Endpoint in tRestRequest Component

Hello,

Please feel free to vote for this jira issue and add your comment in it.

Best regards

Sabrina

--
Don't forget to give kudos when a reply is helpful and click Accept the solution when you think you're good with it.