Skip to main content
Announcements
See what Drew Clarke has to say about the Qlik Talend Cloud launch! READ THE BLOG
cancel
Showing results for 
Search instead for 
Did you mean: 
DaveTaylor
Contributor III
Contributor III

TDI job with working tRestClient service calls; dies when adding a tSetKeyStore component attached to a tCassandraConnection component

If I de-activate the tSetKeyStore component; the tRestClient service calls work fine.
When I attempt to activate the tSetKeyStore component (for use with tCassandraConnection Component); exceptions are raised with the tRestClient services.


The tRestClient Services should have nothing to do with the tSetKeyStore component that is associated to the tCassandraConnection Component.

Any ideas on how to tell the tRestClient components to ignore the tSetKeyStore component?

Here are some of the errorlog it raises:

[WARN ]: org.apache.cxf.phase.PhaseInterceptorChain - Interceptor for {Error! Hyperlink reference not valid. has thrown exception, unwinding now

org.apache.cxf.interceptor.Fault: Could not send Message.

         at org.apache.cxf.interceptor.MessageSenderInterceptor$MessageSenderEndingInterceptor.handleMessage(MessageSenderInterceptor.java:64)

         at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:308)

         at org.apache.cxf.jaxrs.client.AbstractClient.doRunInterceptorChain(AbstractClient.java:649)

         at org.apache.cxf.jaxrs.client.WebClient.doChainedInvocation(WebClient.java:1093)

         at org.apache.cxf.jaxrs.client.WebClient.doInvoke(WebClient.java:894)

         at org.apache.cxf.jaxrs.client.WebClient.doInvoke(WebClient.java:865)

         at org.apache.cxf.jaxrs.client.WebClient.invoke(WebClient.java:428)

         at org.apache.cxf.jaxrs.client.WebClient.get(WebClient.java:611)

         at dih_pendingbusiness.notificationenginemain_0_1.NotificationEngineMain.tHashInput_8Process(NotificationEngineMain.java:41352)

         at dih_pendingbusiness.notificationenginemain_0_1.NotificationEngineMain.tHashInput_6Process(NotificationEngineMain.java:37980)

         at dih_pendingbusiness.notificationenginemain_0_1.NotificationEngineMain.tJava_3Process(NotificationEngineMain.java:49074)

         at dih_pendingbusiness.notificationenginemain_0_1.NotificationEngineMain.tJava_2Process(NotificationEngineMain.java:47316)

         at dih_pendingbusiness.notificationenginemain_0_1.NotificationEngineMain.runJobInTOS(NotificationEngineMain.java:52813)

         at dih_pendingbusiness.notificationenginemain_0_1.NotificationEngineMain.main(NotificationEngineMain.java:52265)

Caused by: javax.net.ssl.SSLHandshakeException: SSLHandshakeException invoking https://xxxmycompanydomain.com/life/policydata/v1/policies/A03SDSAT88/001/ALIP?section=Agents: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target



Labels (4)
6 Replies
Anonymous
Not applicable

Hello
Can you upload a screenshot of your job? I will see if it is possible to split your job to different child jobs and call them with tRunJob.

Regards
Shong
DaveTaylor
Contributor III
Contributor III
Author

I did just that, and moved all the Cassandra components to another job and call it via a tRunjob to get the row flow results.

However, now the main job that calls it and later contains the tRestClient calls is getting errors on the tRestClients, raising the Guava.jar 1635 error version must be at least 16 conflicting against the cassandra components.
I did the shaded trick and replaced all guava.jar versions below 16 with the 19 version; except one 14.0.1 version, that if I shade it, then Talend won't load.

Still looking for a workaround...and surprised the main job that has no cassandra components is still raising the guava error on the tRestclient components against the tRunjob's Cassandra components.

I've read a few articles on this conflict but not found a clear resolution yet.
Anonymous
Not applicable

tSetKeystore configure the keystores in JVM, try to use an independent process to run the child job which contains tSetKeyStore component.
DaveTaylor
Contributor III
Contributor III
Author

Thanks Shong.

I have updated the child process to run as an independent process; and that is avoiding the conflicts.

 

However, the child job as an independent process; cannot utilize the tBufferOut component.


I have successfully written my data to a file in the subjob; and read it back in from the main job; but I don't really want to do file i/o.

 

Is there another option to share data in memory with a child job that is independent process?

Im looking at both trying to use context variables and global map variables to cross the bridge; but so far; not getting the child data back to the parent job

 

.

sramamur1
Contributor
Contributor

@shong @DaveTaylor  Is there a way to reset  the keystore to default...after making that cassandra connection (That requires trusted keystore)...

 

1. set tSetKeyStore

2. make Cassandra connection

3, unset KeyStore to default...

 

this way...it doesn't propagate?

 

 

DaveTaylor
Contributor III
Contributor III
Author

Shong,
Here is the simple pic.

If you deactivate the first subjob (and Cassandra connection, keystore, close) the second subjob works fine.
If you deactivate the second subjob; the first subjob works fine.

When you run them at the same time; the second subjob's tRestClient won't work' because of interference from the tSetKeyStore component.

It shouldn't be using it; it doesn't need it; but the tKeySetKeyStore component is preventing the tRestClient from working. (see error above post).

 0683p000009LzC4.jpg