问题描述
大家好,现在我做了一个发短信的程序,使用的是wavecom。程序源码在XP系统上面运行的好好的,可以正常结束,可是在win7上却无法结束。我是在dos环境下运行的,在xp上运行完毕后,会恢复到可编辑状态,但是,在win7上面无法结束,问题是出在了stopService()方法上(因为最后一个输出是正常的)。不关闭当前dos,再新打开一个dos窗口,执行程序,程序会报异常,异常如下:org.smslib.GatewayException:Commlibraryexception:java.lang.reflect.InvocationTargetExceptionatorg.smslib.modem.SerialModemDriver.connectPort(SerialModemDriver.java:93)atorg.smslib.modem.AModemDriver.connect(AModemDriver.java:106)atorg.smslib.modem.ModemGateway.startGateway(ModemGateway.java:111)atorg.smslib.Service$1Starter.run(Service.java:227)
这个异常也不难理解,关键是我的stopService()方法为何不顶用呢?一直无法stop服务,下一次启动肯定会有异常。还有,这会不会是和我的某些软件冲突呢?我也没有开啥特殊的服务啊!这个大家有遇到的吗?谢谢!源码如下:importorg.smslib.IOutboundMessageNotification;importorg.smslib.Library;importorg.smslib.OutboundMessage;importorg.smslib.Service;importorg.smslib.Message.MessageEncodings;importorg.smslib.modem.SerialModemGateway;publicclassSendMessage{publicvoiddoIt(StringMobilePhoneNomber,StringSMSContent)throwsException{Servicesrv;OutboundMessagemsg;OutboundNotificationoutboundNotification=newOutboundNotification();System.out.println("Example:Sendmessagefromaserialgsmmodem.");System.out.println(Library.getLibraryDescription());System.out.println("Version:"+Library.getLibraryVersion());srv=newService();SerialModemGatewaygateway=newSerialModemGateway("modem.com4","COM4",9600,"wavecomModem","");//115200是波特率,一般为9600。可以通过超级终端测试出来,"17254"代表帧gateway.setInbound(true);gateway.setOutbound(true);gateway.setSimPin("0000");gateway.setOutboundNotification(outboundNotification);srv.addGateway(gateway);srv.startService();System.out.println("ModemInformation:");System.out.println("Manufacturer:"+gateway.getManufacturer());System.out.println("Model:"+gateway.getModel());System.out.println("SerialNo:"+gateway.getSerialNo());System.out.println("SIMIMSI:"+gateway.getImsi());System.out.println("SignalLevel:"+gateway.getSignalLevel()+"%");System.out.println("BatteryLevel:"+gateway.getBatteryLevel()+"%");System.out.println();msg=newOutboundMessage(MobilePhoneNomber,SMSContent);msg.setEncoding(MessageEncodings.ENCUCS2);//这句话是发中文短信必须的srv.sendMessage(msg);System.out.println(msg);System.out.println("NowSleeping-Hit<enter>toterminate.");srv.stopService();}publicclassOutboundNotificationimplementsIOutboundMessageNotification{publicvoidprocess(StringgatewayId,OutboundMessagemsg){System.out.println("OutboundhandlercalledfromGateway:"+gatewayId);System.out.println(msg);}}publicstaticvoidSend(StringMobilePhoneNomber,StringSMSContent){SendMessageapp=newSendMessage();try{app.doIt(MobilePhoneNomber,SMSContent);}catch(Exceptione){e.printStackTrace();}}publicstaticvoidmain(String[]args){SendMessage.Send("18800000000","新的一天,加油哦!");}}
解决方案
解决方案二:
有木有大牛知道呢?
解决方案三:
请问一下,这个问题,你解决了吗?我现在也遇见这个问题了,根本就srv.stopService();没有作用
解决方案四:
楼主,这个问题后来是怎么解决的呢??我也遇到了同样的问题
解决方案五:
输入回车么,没有读输入信息
解决方案六:
楼主这个问题解决了吗??我也遇到这种问题急求解决
解决方案七:
楼主,这个问题后来是怎么解决的呢??我也遇到了同样的问题急求解决