Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
Hi,
1. The route is moving json message from salesforce push topic to kafka.
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
[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
Hello ravi999
Did you ever solve this issue? I would like to create the same process.
Regards,
Malcolm
Hi Malcolm,
This issues is not yet resolved. Still working and looking for a solution to solve this.
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.
Hi Malcolm,
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
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]