java通过SMSlib发送短信出现异常
来源:互联网 发布:excel数据不能排序 编辑:程序博客网 时间:2024/05/05 12:45
我现在有一个需求是利用java程序跟GSM MODEM短信猫结合来达到发短信的目的!在网上下载了些例子来看,把SMSlib相应的包导进工程,并把相应的文件也仿照要求放到相应的目录下,但一运行发短信程!序,就会报下面这个异常!
下面是我的发短信的源代码:
package test;
import java.util.ArrayList;
import java.util.LinkedList;
import java.util.List;
import org.apache.log4j.Level;
import org.apache.log4j.Logger;
import org.smslib.AGateway;
import org.smslib.AGateway.Protocols;
import org.smslib.GatewayException;
import org.smslib.InboundMessage;
import org.smslib.Message.MessageEncodings;
import org.smslib.OutboundMessage;
import org.smslib.Service;
import org.smslib.modem.SerialModemGateway;
public class SendSmsHandler {
private static final Logger logger = Logger.getLogger(SendSmsHandler.class);
private Service smsService;
/**
* 发送短信的类
*/
public SendSmsHandler() {
smsService = Service.getInstance(); //获得服务实例 单例模式的
List<AGateway> agatewayList = new ArrayList<AGateway>();
//String portName = "COM3";//"/dev/ttyUSB0";// COM24 //使用的端口号
SerialModemGateway gateway = new SerialModemGateway(
"modem.com3", "COM3", 9600, "wavecom", ""); //通过端口号频率名称等内容获得设备实例
gateway.setInbound(true);
gateway.setOutbound(true);
gateway.setProtocol(Protocols.PDU); //发送凡是PDU
gateway.setSimPin("0000");
agatewayList.add(gateway); //放到队列中,群发可以放多条就可以了
try {
for (AGateway gatewayTmp : agatewayList) {
smsService.addGateway(gatewayTmp);
}
} catch (GatewayException ex) {
logger.error(ex.getMessage());
}
}
/**
* 启动发送短信的服务
*/
public void start() {
logger.info("SMS service start.....");
try {
smsService.S.SERIAL_POLLING = true;
smsService.startService();
} catch (Exception ex) {
logger.error("SMS service start error:", ex);
}
}
/**
* 停止发送短信服务
*/
public void destroy() {
try {
smsService.stopService(); //停止服务
} catch (Exception ex) {
logger.error("SMS service stop error:", ex);
}
logger.info("SMS service stop");
}
/**
* send SMS
* 发送短信的方法
* @param msg 发送的内容
* @return Boolean 返回是否发送成功
*/
public Boolean sendSMS(OutboundMessage msg) {
try {
msg.setEncoding(MessageEncodings.ENCUCS2); //设置编码
return smsService.sendMessage(msg); //发送短信并返回结果
} catch (Exception e) {
logger.error("send error:", e);
}
return false;
}
//服务是否已经启动
private boolean isStarted() {
if (smsService.getServiceStatus() == Service.ServiceStatus.STARTED) { //服务的状态是否是启动
for (AGateway gateway : smsService.getGateways()) {
if (gateway.getStatus() == AGateway.GatewayStatuses.STARTED) {
return true;
}
}
}
return false;
}
/**
* read SMS 去读接收到的短信信息
* @return List
*/
public List<InboundMessage> readSMS() {
List<InboundMessage> msgList = new LinkedList<InboundMessage>();
if (!isStarted()) {
return msgList;
}
try {
this.smsService.readMessages(msgList,
InboundMessage.MessageClasses.ALL);
logger.info("read SMS size: " + msgList.size());
} catch (Exception e) {
logger.error("read error:", e);
}
return msgList;
}
/**
* @param args 测试类
*/
public static void main(String[] args) {
Logger.getRootLogger().setLevel(Level.INFO);
OutboundMessage outMsg = new OutboundMessage("1xxxxxxxxx7", "这是信息测试"); //绑定接收电话号码和发送的消息
SendSmsHandler smsHandler = new SendSmsHandler();
smsHandler.start(); //启动
//发送短信
smsHandler.sendSMS(outMsg);
//读取短信
List<InboundMessage> readList = smsHandler.readSMS();
for (InboundMessage in : readList) {
System.out.println("发信人:" + in.getOriginator() + " 短信内容:"
+ in.getText());
}
smsHandler.destroy(); //停止服务
System.out.println("-----------");
}
}
求大神解救啊!在线等。。。
- java通过SMSlib发送短信出现异常
- 通过SMSLib库实现Java程序发送短信
- java利用smslib发送短信
- Java 调用smslib发送接收短信
- Java调用SMSLib发送短信详解
- 通过SMSLib实现发送手机短信
- smslib 读不了短信的异常
- 短信猫 smslib errormessage 为 null 异常
- java通过sms发送短信
- java通过短信平台发送短信
- SMSLib实现Java短信收发的功能
- SMSLib实现Java短信收发的功能
- rxtx+smslib java控制短信猫
- 短信猫JAVA二次开发包SMSLib,org.smslib.TimeoutException: No response from device解决方案
- java 实现短信收发-smslib 介绍资料
- java 短信猫开发,smslib库文件配置问题
- 短信猫smsLib for java二次开发系列问题解决探讨
- 用java通过串口发送短信,并且部署到tomcat
- Qt4.8.5在Windows7下的安装全过程
- git学习
- java.lang.OutOfMemoryError: PermGen space及其解决方法
- Java 并发专题 : Semaphore 实现 互斥 与 连接池
- hive学习(4)--- hql语句生成job(包括mapper和reducer)的规则探索
- java通过SMSlib发送短信出现异常
- Linux查看环境变量当前信息和查看命令
- ARM流水线关键技术分析与代码优化
- 图像视频编码和FFmpeg(4)-----h264格式简单介绍
- matlab plot
- obeject-c ARC
- Java 输出某一年所有的日期
- Oracle SYSAUX 表空间说明
- 配置物品和概率进行抽奖