I am using following route to send SMS to multiple recipients.
@Component
public class SMSRoute extends RouteBuilder{
List<String> recipientList = Arrays.asList("0512345678","0512345679");
@Override
public void configure() throws Exception {
from("timer://myTimer?period=1000")
.setHeader("CamelSmppDestAddr", simple(recipientList.toString()))
.setBody()
.simple("Hello World Camel fired at ${header.firedTime}")
.to("smpp://smppclient@{{host}}:{{port}}?password={{password}}&systemId={{systemId}}&"
+ "transactionTimer=5000&systemType=70015"
+ "&sourceAddr=JAVA&dataCoding=8&encoding=UTF-16BE&alphabet=8");
//.to("stream:out");
}
}
When I try to run this code, camel consider the entire list as single number
023-05-03T11:41:43.691+03:00 DEBUG 4032 --- [timer://myTimer] o.a.c.c.smpp.SmppSubmitSmCommand : Sending short message 0 for exchange id '7C18C829419B90F-0000000000000000'... 2023-05-03T11:41:43.691+03:00 ERROR 4032 --- [timer://myTimer] o.a.c.p.e.DefaultErrorHandler : Failed delivery for (MessageId: 7C18C829419B90F-0000000000000000 on ExchangeId: 7C18C829419B90F-0000000000000000). Exhausted after delivery attempt: 1 caught: org.apache.camel.component.smpp.SmppException: org.jsmpp.PDUStringException: C-Octet String value '[05********, 05*********]' length must be less than 21. Actual length is 24
Message History (source location and message history is disabled)
Source ID Processor Elapsed (ms) route1/route1 from[timer://myTimer?period=1000] 1810519390 ... route1/to1 null 0
Stacktrace
org.apache.camel.component.smpp.SmppException: org.jsmpp.PDUStringException: C-Octet String value '[05********, 05*********]' length must be less than 21. Actual length is 24 at org.apache.camel.component.smpp.SmppSubmitSmCommand.execute(SmppSubmitSmCommand.java:79) ~[camel-smpp-4.0.0-M2.jar!/:4.0.0-M2] at org.apache.camel.component.smpp.SmppProducer.process(SmppProducer.java:181) ~[camel-smpp-4.0.0-M2.jar!/:4.0.0-M2] at org.apache.camel.support.AsyncProcessorConverterHelper$ProcessorToAsyncProcessorBridge.process(AsyncProcessorConverterHelper.java:66) ~[camel-support-4.0.0-M2.jar!/:4.0.0-M2] at org.apache.camel.processor.SendProcessor.process(SendProcessor.java:172) ~[camel-core-processor-4.0.0-M2.jar!/:4.0.0-M2] at org.apache.camel.processor.errorhandler.RedeliveryErrorHandler$SimpleTask.run(RedeliveryErrorHandler.java:474) ~[camel-core-processor-4.0.0-M2.jar!/:4.0.0-M2] at org.apache.camel.impl.engine.DefaultReactiveExecutor$Worker.schedule(DefaultReactiveExecutor.java:181) ~[camel-base-engine-4.0.0-M2.jar!/:4.0.0-M2] at org.apache.camel.impl.engine.DefaultReactiveExecutor.scheduleMain(DefaultReactiveExecutor.java:59) ~[camel-base-engine-4.0.0-M2.jar!/:4.0.0-M2] at org.apache.camel.processor.Pipeline.process(Pipeline.java:164) ~[camel-core-processor-4.0.0-M2.jar!/:4.0.0-M2] at org.apache.camel.impl.engine.CamelInternalProcessor.process(CamelInternalProcessor.java:378) ~[camel-base-engine-4.0.0-M2.jar!/:4.0.0-M2] at org.apache.camel.component.timer.TimerConsumer.sendTimerExchange(TimerConsumer.java:210) ~[camel-timer-4.0.0-M2.jar!/:4.0.0-M2] at org.apache.camel.component.timer.TimerConsumer$1.run(TimerConsumer.java:76) ~[camel-timer-4.0.0-M2.jar!/:4.0.0-M2] at java.base/java.util.TimerThread.mainLoop(Timer.java:566) ~[na:na] at java.base/java.util.TimerThread.run(Timer.java:516) ~[na:na] Caused by: org.jsmpp.PDUStringException: C-Octet String value '[0571804118, 0505402810]' length must be less than 21. Actual length is 24 at org.jsmpp.util.StringValidator.validateString(StringValidator.java:42) ~[jsmpp-2.3.11.jar!/:2.3.11] at org.jsmpp.util.DefaultComposer.submitSm(DefaultComposer.java:213) ~[jsmpp-2.3.11.jar!/:2.3.11] at org.jsmpp.DefaultPDUSender.sendSubmitSm(DefaultPDUSender.java:224) ~[jsmpp-2.3.11.jar!/:2.3.11] at org.jsmpp.SynchronizedPDUSender.sendSubmitSm(SynchronizedPDUSender.java:189) ~[jsmpp-2.3.11.jar!/:2.3.11] at org.jsmpp.session.SubmitSmCommandTask.executeTask(SubmitSmCommandTask.java:86) ~[jsmpp-2.3.11.jar!/:2.3.11] at org.jsmpp.session.AbstractSession.executeSendCommand(AbstractSession.java:303) ~[jsmpp-2.3.11.jar!/:2.3.11] at org.jsmpp.session.SMPPSession.submitShortMessage(SMPPSession.java:346) ~[jsmpp-2.3.11.jar!/:2.3.11] at org.apache.camel.component.smpp.SmppSubmitSmCommand.execute(SmppSubmitSmCommand.java:59) ~[camel-smpp-4.0.0-M2.jar!/:4.0.0-M2] ... 12 common frames omitted
2023-05-03T11:41:43.691+03:00 WARN 4032 --- [timer://myTimer] o.a.camel.component.timer.TimerConsumer : Error processing exchange. Exchange[7C18C829419B90F-0000000000000000]. Caused by: [org.apache.camel.component.smpp.SmppException - org.jsmpp.PDUStringException: C-Octet String value '[05********, 05*********]' length must be less than 21. Actual length is 24]
org.apache.camel.component.smpp.SmppException: org.jsmpp.PDUStringException: C-Octet String value '[05********, 05*********]' length must be less than 21. Actual length is 24 at org.apache.camel.component.smpp.SmppSubmitSmCommand.execute(SmppSubmitSmCommand.java:79) ~[camel-smpp-4.0.0-M2.jar!/:4.0.0-M2] at org.apache.camel.component.smpp.SmppProducer.process(SmppProducer.java:181) ~[camel-smpp-4.0.0-M2.jar!/:4.0.0-M2] at org.apache.camel.support.AsyncProcessorConverterHelper$ProcessorToAsyncProcessorBridge.process(AsyncProcessorConverterHelper.java:66) ~[camel-support-4.0.0-M2.jar!/:4.0.0-M2] at org.apache.camel.processor.SendProcessor.process(SendProcessor.java:172) ~[camel-core-processor-4.0.0-M2.jar!/:4.0.0-M2] at org.apache.camel.processor.errorhandler.RedeliveryErrorHandler$SimpleTask.run(RedeliveryErrorHandler.java:474) ~[camel-core-processor-4.0.0-M2.jar!/:4.0.0-M2] at org.apache.camel.impl.engine.DefaultReactiveExecutor$Worker.schedule(DefaultReactiveExecutor.java:181) ~[camel-base-engine-4.0.0-M2.jar!/:4.0.0-M2] at org.apache.camel.impl.engine.DefaultReactiveExecutor.scheduleMain(DefaultReactiveExecutor.java:59) ~[camel-base-engine-4.0.0-M2.jar!/:4.0.0-M2] at org.apache.camel.processor.Pipeline.process(Pipeline.java:164) ~[camel-core-processor-4.0.0-M2.jar!/:4.0.0-M2] at org.apache.camel.impl.engine.CamelInternalProcessor.process(CamelInternalProcessor.java:378) ~[camel-base-engine-4.0.0-M2.jar!/:4.0.0-M2] at org.apache.camel.component.timer.TimerConsumer.sendTimerExchange(TimerConsumer.java:210) ~[camel-timer-4.0.0-M2.jar!/:4.0.0-M2] at org.apache.camel.component.timer.TimerConsumer$1.run(TimerConsumer.java:76) ~[camel-timer-4.0.0-M2.jar!/:4.0.0-M2] at java.base/java.util.TimerThread.mainLoop(Timer.java:566) ~[na:na] at java.base/java.util.TimerThread.run(Timer.java:516) ~[na:na] Caused by: org.jsmpp.PDUStringException: C-Octet String value '[0571804118, 0505402810]' length must be less than 21. Actual length is 24 at org.jsmpp.util.StringValidator.validateString(StringValidator.java:42) ~[jsmpp-2.3.11.jar!/:2.3.11] at org.jsmpp.util.DefaultComposer.submitSm(DefaultComposer.java:213) ~[jsmpp-2.3.11.jar!/:2.3.11] at org.jsmpp.DefaultPDUSender.sendSubmitSm(DefaultPDUSender.java:224) ~[jsmpp-2.3.11.jar!/:2.3.11] at org.jsmpp.SynchronizedPDUSender.sendSubmitSm(SynchronizedPDUSender.java:189) ~[jsmpp-2.3.11.jar!/:2.3.11] at org.jsmpp.session.SubmitSmCommandTask.executeTask(SubmitSmCommandTask.java:86) ~[jsmpp-2.3.11.jar!/:2.3.11] at org.jsmpp.session.AbstractSession.executeSendCommand(AbstractSession.java:303) ~[jsmpp-2.3.11.jar!/:2.3.11] at org.jsmpp.session.SMPPSession.submitShortMessage(SMPPSession.java:346) ~[jsmpp-2.3.11.jar!/:2.3.11] at org.apache.camel.component.smpp.SmppSubmitSmCommand.execute(SmppSubmitSmCommand.java:59) ~[camel-smpp-4.0.0-M2.jar!/:4.0.0-M2] ... 12 common frames omitted*
My expectation is to send SMS to multiple recipients via Route using Apache Camel SMPP