310.9. 异常处理
此组件支持常规 Camel 异常处理功能
当出现错误时,会发送带有 SubmitSm (默认操作)的消息,org.apache.camel.component.smpp.SmppException 会抛出带有嵌套异常 org.jsmpp.extra.NegativeResponseException。调用 NegativeResponseException.getCommandStatus ()以获取确切的 SMPP 负响应代码,这些值在 SMPP 规格 3.4 节中解释。
Camel 2.8 以后 :当 SMPP 使用者收到 deliveringSm
或 DataSm
短消息时,您可以抛出一个 ProcessRequestException
,而不是处理失败。在这种情况下,这个例外被转发到底层 JSMPP 库,该库会将包含的错误代码返回到 SMSC。此功能对于例如指示 SMSC 稍后重新发送简短消息非常有用。这可以通过以下代码行完成:
from("smpp://smppclient@localhost:2775?password=password&enquireLinkTimer=3000&transactionTimer=5000&systemType=consumer") .doTry() .to("bean:dao?method=updateSmsState") .doCatch(Exception.class) .throwException(new ProcessRequestException("update of sms state failed", 100)) .end();
有关错误代码及其含义的完整列表,请参阅 SMPP 规格。