Do not input private or sensitive data. View Qlik Privacy & Cookie Policy.
Skip to main content

Announcements
Qlik Open Lakehouse is Now Generally Available! Discover the key highlights and partner resources here.
cancel
Showing results for 
Search instead for 
Did you mean: 
ravi999
Contributor III
Contributor III

cconvertbodyto for json messages

Hi, 

 

1. The route is moving json message from salesforce push topic to kafka.

0683p000009LzXw.png

The job is failing with below error if we do not keep String.class in cconvertbodyto component. What is the json equivalent class and xml equivalent class instead of string.class for cconvertbodyto component.

 

2. Also kafka is not receiving the timestamp when these messages are loaded as in the pic

 

0683p000009Lygd.png

 

[ERROR]: org.apache.camel.processor.DefaultErrorHandler - Failed delivery for (MessageId: ID-IP-C613E05C-61972-1535329517217-0-1 on ExchangeId: ID-IP-C613E05C-61972-1535329517217-0-2). Exhausted after delivery attempt: 1 caught: org.apache.kafka.common.errors.SerializationException: Can't convert value of class java.util.HashMap to class org.apache.kafka.common.serialization.StringSerializer specified in value.serializer

Message History
org.apache.kafka.common.errors.SerializationException: Can't convert value of class java.util.HashMap to class org.apache.kafka.common.serialization.StringSerializer specified in value.serializer
[WARN ]: org.apache.camel.component.salesforce.SalesforceConsumer - Unhandled exception: Can't convert value of class java.util.HashMap to class org.apache.kafka.common.serialization.StringSerializer specified in value.serializer. Caused by: [org.apache.camel.component.salesforce.api.SalesforceException - Unhandled exception: Can't convert value of class java.util.HashMap to class org.apache.kafka.common.serialization.StringSerializer specified in value.serializer]
{message:'Unhandled exception: Can't convert value of class java.util.HashMap to class org.apache.kafka.common.serialization.StringSerializer specified in value.serializer',statusCode:0}
at org.apache.camel.component.salesforce.SalesforceConsumer.processMessage(SalesforceConsumer.java:194)
at org.apache.camel.component.salesforce.internal.streaming.SubscriptionHelper$6.onMessage(SubscriptionHelper.java:355)
at org.cometd.common.AbstractClientSession$AbstractSessionChannel.notifyOnMessage(AbstractClientSession.java:500)
at org.cometd.common.AbstractClientSession$AbstractSessionChannel.notifyMessageListeners(AbstractClientSession.java:490)
at org.cometd.common.AbstractClientSession.notifyListeners(AbstractClientSession.java:248)
at org.cometd.client.BayeuxClient.notifyListeners(BayeuxClient.java:1001)
at org.cometd.common.AbstractClientSession.receive(AbstractClientSession.java:241)
at org.cometd.client.BayeuxClient.processMessage(BayeuxClient.java:787)
at org.cometd.client.BayeuxClient$PublishTransportListener.processMessage(BayeuxClient.java:1193)
at org.cometd.client.BayeuxClient$ConnectTransportListener.processMessage(BayeuxClient.java:1260)
at org.cometd.client.BayeuxClient$PublishTransportListener.onMessages(BayeuxClient.java:1185)
at org.cometd.client.transport.LongPollingTransport$2.onComplete(LongPollingTransport.java:258)
at org.eclipse.jetty.client.ResponseNotifier.notifyComplete(ResponseNotifier.java:193)
at org.eclipse.jetty.client.ResponseNotifier.notifyComplete(ResponseNotifier.java:185)
at org.eclipse.jetty.client.HttpReceiver.terminateResponse(HttpReceiver.java:453)
at org.eclipse.jetty.client.HttpReceiver.responseSuccess(HttpReceiver.java:400)
at org.eclipse.jetty.client.http.HttpReceiverOverHTTP.messageComplete(HttpReceiverOverHTTP.java:266)
at org.eclipse.jetty.http.HttpParser.parseContent(HttpParser.java:1514)
at org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:1272)
at org.eclipse.jetty.client.http.HttpReceiverOverHTTP.parse(HttpReceiverOverHTTP.java:156)
at org.eclipse.jetty.client.http.HttpReceiverOverHTTP.process(HttpReceiverOverHTTP.java:117)
at org.eclipse.jetty.client.http.HttpReceiverOverHTTP.receive(HttpReceiverOverHTTP.java:69)
at org.eclipse.jetty.client.http.HttpChannelOverHTTP.receive(HttpChannelOverHTTP.java:89)
at org.eclipse.jetty.client.http.HttpConnectionOverHTTP.onFillable(HttpConnectionOverHTTP.java:123)
at org.eclipse.jetty.io.AbstractConnection$2.run(AbstractConnection.java:544)
at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:635)
at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:555)
at java.lang.Thread.run(Unknown Source)
Caused by: org.apache.kafka.common.errors.SerializationException: Can't convert value of class java.util.HashMap to class org.apache.kafka.common.serialization.StringSerializer specified in value.serializer

Labels (6)
4 Replies
Anonymous
Not applicable

Hello ravi999

 

Did you ever solve this issue? I would like to create the same process. 

 

Regards,

Malcolm

ravi999
Contributor III
Contributor III
Author

Hi Malcolm, 

 

This issues is not yet resolved. Still working and looking for a solution to solve this.

Anonymous
Not applicable

Would you mind exporting your job? I would like to try something similar but instead of pushing to Kafka I would like to push to another service.

ravi999
Contributor III
Contributor III
Author

Hi Malcolm, 

 

https://community.talend.com/t5/Design-and-Development/Talend-ESB-cMessagingEndpoint-Salesforce-comp...

 

https://community.talend.com/t5/Design-and-Development/Talend-ESB-cMessagingEndpoint-could-not-conne...

 

https://community.talend.com/t5/Design-and-Development/resolved-Talend-and-camel-2-14/td-p/189932

 

I have had a hard time connecting to salesforce platform events . "salesforce:event/Test_Event__e" is the URL which we need to give in cmessagingendpoint component to connect to salesforce platform event. Talend ESB is a wrapper around Apache camel. Apache camel supports platform events from version 2.23.But Talend's latest version , version 7 is built on camel salesforce version 2.20.1

https://issues.apache.org/jira/browse/CAMEL-11803?jql=text%20~%20%22salesforce%20platform%20event%22

I have tried to use custom component in the advanced setting of cmessagingendpoint. Had so many jar issues and ended up with the below error

 0683p000009M0Lg.png

 

Exception in thread "main" java.lang.NoSuchFieldError: ADJUST_DATES_TO_CONTEXT_TIME_ZONE

      at org.apache.camel.component.salesforce.api.utils.JsonUtils.createObjectMapper(JsonUtils.java:80)

      at org.apache.camel.component.salesforce.internal.SalesforceSession.<init>(SalesforceSession.java:104)

      at org.apache.camel.component.salesforce.SalesforceComponent.doStart(SalesforceComponent.java:348)

      at org.apache.camel.support.ServiceSupport.start(ServiceSupport.java:61)

      at org.apache.camel.impl.DefaultCamelContext.startService(DefaultCamelContext.java:3701)

      at org.apache.camel.impl.DefaultCamelContext.startServices(DefaultCamelContext.java:3707)

      at org.apache.camel.impl.DefaultCamelContext.doStartCamel(DefaultCamelContext.java:3438)

      at org.apache.camel.impl.DefaultCamelContext.access$000(DefaultCamelContext.java:208)

      at org.apache.camel.impl.DefaultCamelContext$2.call(DefaultCamelContext.java:3249)

      at org.apache.camel.impl.DefaultCamelContext$2.call(DefaultCamelContext.java:3245)

      at org.apache.camel.impl.DefaultCamelContext.doWithDefinedClassLoader(DefaultCamelContext.java:3268)

      at org.apache.camel.impl.DefaultCamelContext.doStart(DefaultCamelContext.java:3245)

      at org.apache.camel.support.ServiceSupport.start(ServiceSupport.java:61)

      at org.apache.camel.impl.DefaultCamelContext.start(DefaultCamelContext.java:3168)

      at org.apache.camel.spring.SpringCamelContext.start(SpringCamelContext.java:133)

      at org.apache.camel.main.Main.doStart(Main.java:139)

      at org.apache.camel.support.ServiceSupport.start(ServiceSupport.java:61)

      at org.apache.camel.main.MainSupport.run(MainSupport.java:170)

      at local_project.kafka_to_sfdcplatformevent_0_1.kafka_to_sfdcplatformevent.run(kafka_to_sfdcplatformevent.java:201)

      at local_project.kafka_to_sfdcplatformevent_0_1.kafka_to_sfdcplatformevent.runJobInTOS(kafka_to_sfdcplatformevent.java:298)

      at local_project.kafka_to_sfdcplatformevent_0_1.kafka_to_sfdcplatformevent.main(kafka_to_sfdcplatformevent.java:268)

 

Job kafka_to_sfdcplatformevent ended at 15:51 11/09/2018. [exit code=1]