Skip to main content
Announcements
Introducing Qlik Answers: A plug-and-play, Generative AI powered RAG solution. READ ALL ABOUT IT!
cancel
Showing results for 
Search instead for 
Did you mean: 
jasonatunr
Contributor III
Contributor III

tRESTRequest SSL

I have been using Talend for years, but have never really built ESB endpoints. I am really adept at consuming REST endpoints, but not producing them with Talend. I took the Talend training, but it covered only how to use the tool and had no subject on how to deploy, configure, or realistically utilize ESB integrations in the real world.

 

I have a very simply test integration that is designed to receive an open REST request and respond with a text response of "yo." When I run it on my studio client I can hit it with postman and get the appropriate response. I am now trying to run the same integration, but utilizing SSL.

 

I am getting the below error when I try putting https in the URL. I know I need to setup a trust store somewhere, but not sure where to start with the studio runtime. 

 

Starting job RestYo at 14:00 13/06/2019.

Endpoint deployed at: https://localhost:8088/yo
[statistics] connecting to socket on port 3885
[statistics] connected
org.apache.cxf.service.factory.ServiceConstructionException
at org.apache.cxf.jaxrs.JAXRSServerFactoryBean.create(JAXRSServerFactoryBean.java:225)
at edi_esbtest.restyo_0_1.RestYo$Thread4RestServiceProviderEndpoint.run(RestYo.java:861)
Caused by: java.lang.RuntimeException: Protocol mismatch for port 8088: engine's protocol is http, the url protocol is https
at org.apache.cxf.transport.http_jetty.JettyHTTPDestination.finalizeConfig(JettyHTTPDestination.java:168)
at org.apache.cxf.transport.http.HTTPTransportFactory.getDestination(HTTPTransportFactory.java:288)
at org.apache.cxf.endpoint.ServerImpl.initDestination(ServerImpl.java:84)
at org.apache.cxf.endpoint.ServerImpl.<init>(ServerImpl.java:63)
at org.apache.cxf.jaxrs.JAXRSServerFactoryBean.create(JAXRSServerFactoryBean.java:173)
... 1 more
Caused by: java.io.IOException: Protocol mismatch for port 8088: engine's protocol is http, the url protocol is https
at org.apache.cxf.transport.http_jetty.JettyHTTPServerEngineFactory.createJettyHTTPServerEngine(JettyHTTPServerEngineFactory.java:277)
at org.apache.cxf.transport.http_jetty.JettyHTTPServerEngineFactory.createJettyHTTPServerEngine(JettyHTTPServerEngineFactory.java:307)
at org.apache.cxf.transport.http_jetty.JettyHTTPDestination.retrieveEngine(JettyHTTPDestination.java:134)
at org.apache.cxf.transport.http_jetty.JettyHTTPDestination.finalizeConfig(JettyHTTPDestination.java:166)
... 5 more

Job RestYo ended at 14:01 13/06/2019. [exit code=1]

Labels (3)
2 Replies
nfz11
Creator III
Creator III

If it is a certificate issue, you can try adding the certificate of your server to your Java keystore on the machines where you are running your client, e.g. your local machine to start.  Here is some information on managing keystores in Java:

https://www.digitalocean.com/community/tutorials/java-keytool-essentials-working-with-java-keystores

jasonatunr
Contributor III
Contributor III
Author

I've used the java keytool on many occasions and the appropriate certs are installed in the cacerts of the java instance Talend is using however, I still get this error. This leads me to believe it is not related to a cert problem at the moment.

 

The concept that is foreign to me at this moment is how the ESB Studio Runtime works. It doesn't appear to have a runtime engine I can find that it would be using hence I cannot find where I can configure the runtime for SSL. This error basically is saying the runtime is not configured for SSL, but I cannot find where the ESB Studio Runtime is living.