D:\program\classes\JBuilder2006\jdk1.5\bin\javaw -classpath "E:\work\LAOAN\SMSModel\classes;E:\work\LAOAN\SMSModel\supportlib\comm.jar;D:\program\classes\JBuilder2006\jdk1.5\jre\lib\deploy.jar;D:\program\classes\JBuilder2006\jdk1.5\jre\lib\rt.jar;D:\program\classes\JBuilder2006\jdk1.5\jre\lib\plugin.jar;D:\program\classes\JBuilder2006\jdk1.5\jre\lib\javaws.jar;D:\program\classes\JBuilder2006\jdk1.5\jre\lib\ext\dnsns.jar;D:\program\classes\JBuilder2006\jdk1.5\jre\lib\ext\sunpkcs11.jar;D:\program\classes\JBuilder2006\jdk1.5\jre\lib\ext\localedata.jar;D:\program\classes\JBuilder2006\jdk1.5\jre\lib\ext\sunjce_provider.jar;D:\program\classes\JBuilder2006\jdk1.5\jre\lib\jsse.jar;D:\program\classes\JBuilder2006\jdk1.5\jre\lib\jce.jar;D:\program\classes\JBuilder2006\jdk1.5\jre\lib\charsets.jar;D:\program\classes\JBuilder2006\jdk1.5\jre\lib\im\thaiim.jar;D:\program\classes\JBuilder2006\jdk1.5\jre\lib\im\indicim.jar;D:\program\classes\JBuilder2006\jdk1.5\lib\jconsole.jar;D:\program\classes\JBuilder2006\jdk1.5\lib\tools.jar;D:\program\classes\JBuilder2006\jdk1.5\lib\dt.jar;D:\program\classes\JBuilder2006\jdk1.5\lib\htmlconverter.jar"  -Xdebug -Xnoagent -Djava.compiler=NONE -Xrunjdwp:transport=dt_socket,address=new:1922,suspend=y com.sms.test.test 
Error loading SolarisSerial: java.lang.UnsatisfiedLinkError: no SolarisSerialParallel in java.library.path
Caught java.lang.UnsatisfiedLinkError: readRegistrySerial while loading driver com.sun.comm.SolarisDriver
Error loading SolarisSerial: java.lang.UnsatisfiedLinkError: no SolarisSerialParallel in java.library.path
Caught java.lang.UnsatisfiedLinkError: readRegistrySerial while loading driver com.sun.comm.SolarisDriver
大家出现过这个错误吗?

解决方案 »

  1.   

    1.枚举出系统所有的RS232端口  在开始使用RS232端口通讯之前,我们想知道系统有哪些端口是可用的,以下代码列出系统中所有可用的RS232端口:  Enumeration en = CommPortIdentifier.getPortIdentifiers();  CommPortIdentifier portId;  while (en.hasMoreElements())   {  portId = (CommPortIdentifier) en.nextElement();  /*如果端口类型是串口,则打印出其端口信息*/  if (portId.getPortType() == CommPortIdentifier.PORT_SERIAL)   {  System.out.println(portId.getName());  }  }    在我的电脑上以上程序输出没有任何结果。是不是我的猫没有接上的原因啊。
      

  2.   

    没有装载对应的solaris 端口访问包?
      

  3.   

    ModemAdapter::handleRecData  testz
    +CMGS: 143OK
    这个发送成功了吗?怎么查询发送成功。但是手机没有收到。
      

  4.   

    1.枚举出系统所有的RS232端口   在开始使用RS232端口通讯之前,我们想知道系统有哪些端口是可用的,以下代码列出系统中所有可用的RS232端口: 
      Enumeration   en   =   CommPortIdentifier.getPortIdentifiers();   CommPortIdentifier   portId;   while   (en.hasMoreElements())     {   portId   =   (CommPortIdentifier)   en.nextElement();   /*如果端口类型是串口,则打印出其端口信息*/   if   (portId.getPortType()   ==   CommPortIdentifier.PORT_SERIAL)     {   System.out.println(portId.getName());   }   }    
      

  5.   

    由于业务的需要,今天用java实现了用wavecom短信猫发短信的功能,本来这个应该用随猫购买的二次开发接口实现的,但由于这几台猫买的时候,经销商没有提供二次开发接口,所以我不得不在网上找了资料,自己写了个接口实现了发短信的功能。 
       实现这个功能,需要两个jar包,可以到http://code.google.com/p/smslib下载smslib-v3.3.0-B2-bin.zip和javacomm20-win32.zip。
         首先,把smslib-v3.3.0-B2-bin.zip解开,在smslib\dist\lib目录下找到smslib-3.3.0b2.jar,放入工程lib中,再把javacomm20-win32.zip解开,里面的comm.jar需要放到工程lib下,javax.comm.properties放到%JAVA_HOME%/jre/lib下,win32com.dll放到%JAVA_HOME%/jre/bin下。路径放错了,调用起来就会报错的。
    环境配置好了以后,使用起来很简单,贴下我的代码:
       // SendMessage.java - Sample application.
    //
    // This application shows you the basic procedure for sending messages.
    // You will find how to send synchronous and asynchronous messages.
    //
    // For asynchronous dispatch, the example application sets a callback
    // notification, to see what's happened with messages.
    package song.test;
    import org.smslib.IOutboundMessageNotification;
    import org.smslib.Library;
    import org.smslib.OutboundMessage;
    import org.smslib.Service;
    import org.smslib.Message.MessageEncodings;
    import org.smslib.modem.SerialModemGateway;
    public class SendMessage
    {
    public void doIt() throws Exception
    {
       Service srv;
       OutboundMessage msg;
       OutboundNotification outboundNotification = new OutboundNotification();
       System.out.println("Example: Send message from a serial gsm modem.");
       System.out.println(Library.getLibraryDescription());
       System.out.println("Version: " + Library.getLibraryVersion());
       srv = new Service();
      
       SerialModemGateway gateway = new SerialModemGateway("modem.com1", "COM1", 115200, "wavecom", "17254");
       gateway.setInbound(true);
       gateway.setOutbound(true);
       gateway.setSimPin("0000");
       gateway.setOutboundNotification(outboundNotification);
       srv.addGateway(gateway);
       srv.startService();
       System.out.println("Modem Information:");
       System.out.println(" Manufacturer: " + gateway.getManufacturer());
       System.out.println(" Model: " + gateway.getModel());
       System.out.println(" Serial No: " + gateway.getSerialNo());
       System.out.println(" SIM IMSI: " + gateway.getImsi());
       System.out.println(" Signal Level: " + gateway.getSignalLevel() + "%");
       System.out.println(" Battery Level: " + gateway.getBatteryLevel() + "%");
       System.out.println();
       // Send a message synchronously.
      
       msg = new OutboundMessage("13649251175", "这个是用java发的中文短信!");//手机号码,和短信内容
       msg.setEncoding(MessageEncodings.ENCUCS2);//这句话是发中文短信必须的
       srv.sendMessage(msg);
       System.out.println(msg);
       System.out.println("Now Sleeping - Hit <enter> to terminate.");
       System.in.read();
       srv.stopService();
    }
    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);
       }
    }
    public static void main(String args[])
    {
       SendMessage app = new SendMessage();
       try
       {
        app.doIt();
       }
       catch (Exception e)
       {
        e.printStackTrace();
       }
    }
    }
      

  6.   

    wanghy2008,你好,测试了你的代码,javac编译成功,java SendMessage 效果如下,不继续执行,也不抱错。
    C:\Java\jdk1.6.0_10\bin>java SendMessage
    Example: Send message from a serial gsm modem.
    SMSLib: A Java API library for sending and receiving SMS via a GSM modem or othe
    r supported gateways.
    This software is distributed under the terms of the Apache v2.0 License.
    Web Site: http://smslib.org
    Version: 3.4.6
    - 请问什么原因?