[list]
[*][url=http://rikugun.iteye.com/blog/296384]半桶水开发 CMPP2.0 with Spring + JPA 1[/url]
[*][url=http://rikugun.iteye.com/blog/296439]半桶水开发 CMPP2.0 with Spring + JPA 2[/url]
[*][url=http://rikugun.iteye.com/blog/297369]半桶水开发 CMPP2.0 with Spring + JPA 3[/url]
[/list]

接上,这贴一下自定义的发送代理

CMPPProxy.java

public class CMPPProxy extends SMProxy {   //保存下发短信的队列    private static BlockingQueue<CMPPDeliverMessage> deliveMsgs = new LinkedBlockingQueue<CMPPDeliverMessage>(15);/**  返回一个实例* @return CMPPProx 返回一个实例*/    public static CMPPProxy getInstance() {        if (instance == null) {            instance = new CMPPProxy();        }        return instance;    }/** 获取保存下发短信的队列* @return BlockingQueue<CMPPDeliverMessage> */    public BlockingQueue<CMPPDeliverMessage> getDeliveMsgs() {        return deliveMsgs;    }

    protected CMPPProxy() {        super(arg);    }

    public void OnTerminate() {        System.out.println("Connection have been breaked! ");    }/**  收到下发短信触发的事件 如果需要返回回执的话就返回一个 CMPPMessage到网关中*  @return CMPPMessage*/    @Override    public CMPPMessage onDeliver(CMPPDeliverMessage msg) {        byte msgId[] = msg.getMsgId();        if (msg.getRegisteredDeliver() == 1) { //是否要回执            if (String.valueOf(msg.getStat()).equalsIgnoreCase("DELIVRD")) {                System.out.println(String.valueOf(String.valueOf((new StringBuffer("\t\treceived DELIVRD message msgid=[")).append(msg.getMsgId()).append("]"))));//                long submitMsgId = TypeConvert.byte2long(msg.getStatusMsgId());                try {                    CMPPDeliverRepMessage cmppdeliverrepmessage = new CMPPDeliverRepMessage(msgId, 0);                    return cmppdeliverrepmessage;                } catch (Exception ex) {                    CMPPDeliverRepMessage cmppdeliverrepmessage1 = new CMPPDeliverRepMessage(msgId, 9);                    return cmppdeliverrepmessage1;                }            } else {                return new CMPPDeliverRepMessage(msgId, 9);            }        } else {            System.out.println("Get a Deliver..");            try {                deliveMsgs.put(msg);  //把收到的非回执短信保存到队列中待处理            } catch (InterruptedException ex) {                Logger.getLogger(CMPPProxy.class.getName()).log(Level.SEVERE, null, ex);            }            System.out.println("Total [" + deliveMsgs.size() + "]DeliverMessages");            System.out.println(String.valueOf(String.valueOf((new StringBuffer("\t\treceived non DELIVRD message msgid=[")).append(msg.getMsgId()).append("]"))));            return new CMPPDeliverRepMessage(msgId, 9);        }    }/** 封装过的发送函数* @param CMPPSubmitMessage 短信* @return boolean 是否发送成功*/    public boolean send(CMPPSubmitMessage msg) {        if (msg == null) {            return false;        }        CMPPSubmitRepMessage reportMsg = null;        try {            reportMsg = (CMPPSubmitRepMessage) super.send(msg);

            if (reportMsg == null) {                return false;            }        } catch (IOException ex) {            ex.printStackTrace();            return false;        }        return true;    }/**发送短信,带响应内容* @param CMPPSubmitMessage * @return CMPPSubmiReptMessage 响应内容*/    public CMPPSubmitRepMessage sendWithRep(CMPPSubmitMessage msg) {        CMPPSubmitRepMessage reportMsg = null;        try {            reportMsg = (CMPPSubmitRepMessage) super.send(msg);        } catch (IOException ex) {            ex.printStackTrace();        }        return reportMsg;    }    private static Args arg = Env.getConfig().getArgs("CMPPConnect");    public static final String service_Id = Env.getConfig().get("CMPPSubmitMessage/service_Id", "WebSM");    public static final String msg_Src = Env.getConfig().get("CMPPSubmitMessage/msg_Src", "WebSMS");    public static final String connectCode = Env.getConfig().get("CMPPSubmitMessage/src_Terminal_Id", "");    private static CMPPProxy instance;}

半桶水开发 CMPP2.0 with Spring + JPA 2相关推荐

  1. 0、Spring 注解驱动开发

    0.Spring注解驱动开发 0.1 简介 <Spring注解驱动开发>是一套帮助我们深入了解Spring原理机制的教程: 现今SpringBoot.SpringCloud技术非常火热,作 ...

  2. 协议开发 中移动CMPP2.0协议API(三)

    协议开发 中移动CMPP2.0协议API(三) 云网(jimzj@21cn.com) 接上篇... 五.发送接口 对于API来说,最重要的一部分就是去做发送数据了.通过SOCKET套接字与网关相连接后 ...

  3. Spring Data 系列(二) Spring+JPA入门(集成Hibernate)

    通过[Spring Data 系列(一) 入门]的介绍,通过对比的方式认识到Spring提供的JdbcTemplate的强大功能.通过使用JdbcTemplate,操作数据库,不需要手动处理Conne ...

  4. 一文搞懂 Spring JPA

    作者 | 阿文 责编 | 屠敏 什么是 JPA 大家好,今天我和大家聊一下关于Spring JPA 的相关知识,我们先来了解下什么是 JPA ? JPA (Java Persistence API) ...

  5. 使用Spring JPA中Page、Pageable接口和Sort类完成分页排序

    显示时,有三个参数,前两个必填,第几页,一页多少个size,第三个参数默认可以不填. 但是发现这个方法已经过时了,通过查看它的源码发现,新方法为静态方法PageRequest of(page,size ...

  6. 《JavaEE开发的颠覆者: Spring Boot实战》资源及勘误

    感谢大家对<JavaEE开发的颠覆者: Spring Boot实战>的支持,您可以在如下地址购买: 京东地址:http://item.jd.com/11894632.html 当当地址:h ...

  7. 最近在研究Spring Data JPA,大家都来说说感受~~ - Spring,JPA - Java - ITeye论坛

    最近在研究Spring Data JPA,大家都来说说感受~~ - Spring,JPA - Java - ITeye论坛 最近在研究Spring Data JPA,大家都来说说感受~~ - Spri ...

  8. Spring JPA使用CriteriaBuilder动态构造查询

    版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明. 本文链接:https://www.cnblogs.com/mzdljgz/p/11495723 ...

  9. 使用Spring Security和OAuth 2.0保护Spring微服务架构

    "我喜欢编写身份验证和授权代码." 〜从来没有Java开发人员. 厌倦了一次又一次地建立相同的登录屏幕? 尝试使用Okta API进行托管身份验证,授权和多因素身份验证. 每个开发 ...

最新文章

  1. 如何快速让你的站点进入灰白哀悼模式?
  2. UA MATH567 高维统计专题3 含L1-norm的凸优化6 Stochastic Gradient Descent简介
  3. 3_ARM内核和架构都是什么意思,它们到底是什么关系?
  4. DCMTK:以HTML格式呈现DICOM结构化报告文件的内容
  5. js 动态获取表格中的值并修改其他表格+js 动态拼接字符串
  6. python数码时钟代码_Python+Pyqt实现简单GUI电子时钟
  7. 1-3-顺时针旋转矩阵
  8. Anroid View事件响应机制和ViewGroup的事件响应分发机制
  9. 以管理员权限运行程序需注意
  10. window.onload 函数不执行处理
  11. ascll编码表图片_ASCII编码表
  12. 编码的奥秘之发报机与继电器
  13. Linux安装卸载jdk1.8
  14. 怎么用计算机直接截图,电脑截图快捷键怎么使用,电脑怎么快捷键截图
  15. 001java面试笔记——【java基础篇】从团800失败面试总结的java面试题
  16. 常见的网站功能需求及解决方案
  17. c语言 称重系统设计,智能称重系统设计-文献综述.doc
  18. (转)iOS开发-常用第三方开源框架介绍(你了解的ios只是冰山一角)
  19. Jad - the latest version
  20. 百度地图api--定位当前的位置

热门文章

  1. MySQL之MaxScale实现读写分离
  2. 九种食物摆脱便秘烦恼 - 健康程序员,至尚生活!
  3. Android OpenCV(五十一):图像插值
  4. Cloudera CDH 、Hortonworks DHP和MapR比较
  5. 计算机辅助设计capp设计,自动化博览
  6. matlab——uint8、im2uint8、double、im2double和mat2gray的说明
  7. 面向6G的无人机辅助通信技术
  8. hig规范_Unix Shell的人机接口指南(HIG)
  9. 新手骑友,如何利用山地车变速器,实现不同路况下的速度转换?
  10. JavaScript解析控制台打印Object对象