短信猫smslib,终端at ok,在srv.stopService()时会报空指针,求大神解决

1、这几个东西也是按照这个放的
comm.jar 放到 已放入java_home\jire\lib\ext
javax.comm.properties 已放入java_home\jire\lib
win32com.dll 已放入java_home\jire\bin

2、我的操作系统是win7 64位的
3、代码如下

package driver;

import org.smslib.Library;
import org.smslib.OutboundMessage;
import org.smslib.Service;
import org.smslib.modem.SerialModemGateway;

public class Contest {
public void doIt() throws Exception {
Service srv;
OutboundMessage msg; // SerialModemGateway gateway=null;
// OutboundNotification outboundNotification =
// new OutboundNotification();

    System.out.println("示例: 通过金笛串口短信猫发送短信.");
    System.out.println(Library.getLibraryDescription());
    System.out.println("版本: " + Library.getLibraryVersion());
    srv = Service.getInstance();
    SerialModemGateway gateway = new SerialModemGateway("modem.com7", "COM7",115200, "Wavecom", "2");

    gateway.setInbound(true);
    gateway.setOutbound(true);
    gateway.setSimPin("0000");
    srv.addGateway(gateway);

    srv.startService();
    System.out.println();
    System.out.println("GSM Modem信息:");
    System.out.println("  厂家: " + gateway.getManufacturer());
    System.out.println("  型号: " + gateway.getModel());
    System.out.println("  序列号: " + gateway.getSerialNo());
    System.out.println("  SIM IMSI: " + gateway.getImsi());
    System.out.println("  信号强度: " + gateway.getSignalLevel() + "%");
    System.out.println("  电池容量: " + gateway.getBatteryLevel() + "%");
    System.out.println();
    srv.stopService();
}
public static void main(String args[]) {
    Contest app = new Contest();
    try {
        app.doIt();
    } catch (Exception e) {
        e.printStackTrace();
    }
}

}

4、报错信息如下:

示例: 通过金笛串口短信猫发送短信.
SMSLib: A Java API library for sending and receiving SMS via a GSM modem or other supported gateways.
This software is distributed under the terms of the Apache v2.0 License.
Web Site: http://smslib.org
版本: 3.5.3
java.lang.NullPointerException
at org.smslib.modem.SerialModemDriver.write(SerialModemDriver.java:166)
at org.smslib.modem.AModemDriver.write(AModemDriver.java:302)
at org.smslib.modem.athandler.ATHandler_Wavecom.done(ATHandler_Wavecom.java:52)
at org.smslib.modem.ModemGateway.stopGateway(ModemGateway.java:201)
at org.smslib.Service.stopService(Service.java:355)
at org.smslib.Service.startService(Service.java:234)
at org.smslib.Service.startService(Service.java:196)
at driver.Contest.doIt(Contest.java:50)
at driver.Contest.main(Contest.java:76)

运行到 srv.startService(); 这个地方就会跳出去,然后报空指针

请问一下这个错误应该怎么改呀?

请问一下这个错误应该怎么改呀?

我最开始也是这样,记录一下,最后发现是端口被占用了

怎么解决的