1

每当我尝试在方法之外提交短消息onAcceptDeliverSm(DeliverSm deliverSm)时,我都会遇到异常。这是我正在工作的代码:

 public void onAcceptDeliverSm(DeliverSm deliverSm)
        throws ProcessRequestException {
    try {
            String messageId = session.submitShortMessage("USSD", TypeOfNumber.NETWORK_SPECIFIC, NumberingPlanIndicator.PRIVATE, "420", TypeOfNumber.INTERNATIONAL, NumberingPlanIndicator.ISDN, msisdn, new ESMClass(),
                    (byte) 0, (byte) 1, timeFormatter.format(new Date()), null, new RegisteredDelivery(SMSCDeliveryReceipt.DEFAULT), (byte) 0, new GeneralDataCoding((byte) 15), (byte) 0, "Welcome.".getBytes(), new OptionalParameter.Byte(OptionalParameter.Tag.USSD_SERVICE_OP, (byte) 2));
        } catch (PDUException ex) {
            Logger.getLogger(MessageReceiverListenerImpl.class.getName()).log(Level.SEVERE, null, ex);
        } catch (ResponseTimeoutException ex) {
            Logger.getLogger(MessageReceiverListenerImpl.class.getName()).log(Level.SEVERE, null, ex);
        } catch (InvalidResponseException ex) {
            Logger.getLogger(MessageReceiverListenerImpl.class.getName()).log(Level.SEVERE, null, ex);
        } catch (NegativeResponseException ex) {
            Logger.getLogger(MessageReceiverListenerImpl.class.getName()).log(Level.SEVERE, null, ex);
        } catch(IOException e) {

        }
}

上面的代码工作正常。但是当我尝试将参数传递给另一个类时,submitsm 不起作用。:(

public void onAcceptDeliverSm(DeliverSm deliverSm)
        throws ProcessRequestException {
 Processor processor = new Processor(session, msisdn);
}

处理器类:

Class Processor {

  public Processor(SMPPSession session, String msisdn)  {
    this.msisdn = msisdn;
    this.sessionid = sessionid;
    this.input = input;
    this.circle_id = circle_id;
    this.session = session;

 String messageId = session.submitShortMessage("USSD", TypeOfNumber.NETWORK_SPECIFIC, NumberingPlanIndicator.PRIVATE, "420", TypeOfNumber.INTERNATIONAL, NumberingPlanIndicator.ISDN, msisdn, new ESMClass(),
                (byte) 0, (byte) 1, timeFormatter.format(new Date()), null, new RegisteredDelivery(SMSCDeliveryReceipt.DEFAULT), (byte) 0, new GeneralDataCoding((byte) 15), (byte) 0, input.getBytes(), new OptionalParameter.Byte(OptionalParameter.Tag.USSD_SERVICE_OP, (byte) 2));

}
}

请告诉我问题出在哪里?谢谢大家

4

0 回答 0