半桶水开发 CMPP2.0 with Spring + JPA 2
[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相关推荐
- 0、Spring 注解驱动开发
0.Spring注解驱动开发 0.1 简介 <Spring注解驱动开发>是一套帮助我们深入了解Spring原理机制的教程: 现今SpringBoot.SpringCloud技术非常火热,作 ...
- 协议开发 中移动CMPP2.0协议API(三)
协议开发 中移动CMPP2.0协议API(三) 云网(jimzj@21cn.com) 接上篇... 五.发送接口 对于API来说,最重要的一部分就是去做发送数据了.通过SOCKET套接字与网关相连接后 ...
- Spring Data 系列(二) Spring+JPA入门(集成Hibernate)
通过[Spring Data 系列(一) 入门]的介绍,通过对比的方式认识到Spring提供的JdbcTemplate的强大功能.通过使用JdbcTemplate,操作数据库,不需要手动处理Conne ...
- 一文搞懂 Spring JPA
作者 | 阿文 责编 | 屠敏 什么是 JPA 大家好,今天我和大家聊一下关于Spring JPA 的相关知识,我们先来了解下什么是 JPA ? JPA (Java Persistence API) ...
- 使用Spring JPA中Page、Pageable接口和Sort类完成分页排序
显示时,有三个参数,前两个必填,第几页,一页多少个size,第三个参数默认可以不填. 但是发现这个方法已经过时了,通过查看它的源码发现,新方法为静态方法PageRequest of(page,size ...
- 《JavaEE开发的颠覆者: Spring Boot实战》资源及勘误
感谢大家对<JavaEE开发的颠覆者: Spring Boot实战>的支持,您可以在如下地址购买: 京东地址:http://item.jd.com/11894632.html 当当地址:h ...
- 最近在研究Spring Data JPA,大家都来说说感受~~ - Spring,JPA - Java - ITeye论坛
最近在研究Spring Data JPA,大家都来说说感受~~ - Spring,JPA - Java - ITeye论坛 最近在研究Spring Data JPA,大家都来说说感受~~ - Spri ...
- Spring JPA使用CriteriaBuilder动态构造查询
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明. 本文链接:https://www.cnblogs.com/mzdljgz/p/11495723 ...
- 使用Spring Security和OAuth 2.0保护Spring微服务架构
"我喜欢编写身份验证和授权代码." 〜从来没有Java开发人员. 厌倦了一次又一次地建立相同的登录屏幕? 尝试使用Okta API进行托管身份验证,授权和多因素身份验证. 每个开发 ...
最新文章
- 如何快速让你的站点进入灰白哀悼模式?
- UA MATH567 高维统计专题3 含L1-norm的凸优化6 Stochastic Gradient Descent简介
- 3_ARM内核和架构都是什么意思,它们到底是什么关系?
- DCMTK:以HTML格式呈现DICOM结构化报告文件的内容
- js 动态获取表格中的值并修改其他表格+js 动态拼接字符串
- python数码时钟代码_Python+Pyqt实现简单GUI电子时钟
- 1-3-顺时针旋转矩阵
- Anroid View事件响应机制和ViewGroup的事件响应分发机制
- 以管理员权限运行程序需注意
- window.onload 函数不执行处理
- ascll编码表图片_ASCII编码表
- 编码的奥秘之发报机与继电器
- Linux安装卸载jdk1.8
- 怎么用计算机直接截图,电脑截图快捷键怎么使用,电脑怎么快捷键截图
- 001java面试笔记——【java基础篇】从团800失败面试总结的java面试题
- 常见的网站功能需求及解决方案
- c语言 称重系统设计,智能称重系统设计-文献综述.doc
- (转)iOS开发-常用第三方开源框架介绍(你了解的ios只是冰山一角)
- Jad - the latest version
- 百度地图api--定位当前的位置