Java调用短信猫

用Java调用短信猫实现为手机发短息的功能。其实这样的例子网上已经有很多了,但是我觉得网上的例子中对发短息异常的情况分析的不够透彻,所以我这里也发一个Java调用短信猫的小例子。

具体的操作步骤如下:

 1、把smslib-3.3.3.jar、comm.jar与log4j-1.2.13.jar,放入到工程的lib中;

2、把javax.comm.properties放到%JAVA_HOME%/jre/lib下;

 3、把win32com.dll放到%JAVA_HOME%/jre/bin下;

注意:路径放错了,调用起来就会报错的;还有一点就是JDK的版本,我用的版本是jdk-1_5_0_04。

这样配置好了,运行我下面的代码就可以发短息了,

具体的代码如下: package com.alonely.notecat; import org.smslib.IOutboundMessageNotification; import org.smslib.OutboundMessage; import org.smslib.Service; import org.smslib.Message.MessageEncodings; import org.smslib.modem.SerialModemGateway; public class SendMessage { public class OutboundNotification implements IOutboundMessageNotification { public void process(String gatewayId, OutboundMessage msg) { System.out.println("Outbound handler called from Gateway: " + gatewayId); System.out.println(msg); } } @SuppressWarnings("deprecation") public void sendSMS(String mobilePhones, String content) { Service srv; OutboundMessage msg; OutboundNotification outboundNotification = new OutboundNotification(); srv = new Service(); SerialModemGateway gateway = new SerialModemGateway("modem.com3", "COM3", 9600, "wavecom", ""); //设置端口与波特率 gateway.setInbound(true); gateway.setOutbound(true); gateway.setSimPin("0000"); gateway.setOutboundNotification(outboundNotification); srv.addGateway(gateway); System.out.println("初始化成功,准备开启服务"); try { srv.startService(); System.out.println("服务启动成功"); String[] phones = mobilePhones.split(","); for (int i = 0; i < phones.length; i++) { msg = new OutboundMessage(phones[i], content); msg.setEncoding(MessageEncodings.ENCUCS2); // 中文 srv.sendMessage(msg); } srv.stopService(); } catch (Exception e) { e.printStackTrace(); } } public static void main(String[] args) { SendMessage sendMessage = new SendMessage(); sendMessage.sendSMS("您要发送的手机号", "您要发送的内容!"); } }

 Ok,我代码贴完了,下面告诉大家我遇到的异常,并且是如何解决的:

1、如果你报了如下错误: Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/log4j/Logger 那是因为你没有把log4j-1.2.13.jar倒入到工程中。

2、如果你报了如下错误: org.smslib.GatewayException: Comm library exception: java.lang.RuntimeException:javax.comm.NoSuchPortException 说明你的Eclipse选择的JDK有问题,反正我用的是jdk-1_5_0_04版本,没有任何问题;我在MyEclipse5.5下用它自带的JDK就有问题,这点请大家注意。

 

by:http://ks2144634.blog.163.com/blog/static/133585503201092962726126/s

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值