这个问题是关于 Apache Camel SMPP 和 GSM-7
使用camel-smpp-starter 4.2.0
我们的 SMSC 根据标头使用 SMSC 默认字母向我们的应用程序发送短信。这是根据 SMSC 文档 GSM-7 得出的。当我尝试将编码设置为 GSM-7 时。它会抛出一个错误。我可以看到代码使用 String(body, ) 来解码正文。
我想知道是否有人使用过带有 GSM-7 的 Camel smpp 并且可以提供一些详细信息
camel:
springboot:
main-run-controller: true
component:
enabled: true
smpp:
encoding: GSM-7
2024-01-29T07:33:26.154+01:00 WARN 11636 --- [pool-2-thread-1]
o.a.camel.component.smpp.SmppConsumer : Cannot create exchange. This exception will
be ignored.. Caused by: [java.io.UnsupportedEncodingException - GSM-7]
java.io.UnsupportedEncodingException: GSM-7
at java.base/java.lang.String.lookupCharset(String.java:861) ~[na:na]
at java.base/java.lang.String.<init>(String.java:1401) ~[na:na]
at org.apache.camel.component.smpp.SmppUtils.decodeBody(SmppUtils.java:372)
我自己回答这个问题:
apache Camel smpp 组件不支持 gsm-7,它仅支持 jvm 中开箱即用安装的格式。我们所做的是更改 smsc 的配置以以 latin1 格式发送消息。