GSM MODEM短信设备使用rxtx+smslib出错常见问题

分享
在短信设备的开发过程中遇到了很多问题,在此进行记录,以供大家作为参考。



一、Error 0x5 at ..\src\termios.c(892): 拒绝访问

            原因:

                  1.串口被占用

                  2.串口不存在

      解决办法:

                 1.系统的管理器中,查看串口是否存在,不存在进行更换。

                 2.如果串口存在,查看是否有其他的程序正在打开,占用了该串口(例如串口测试工具等,我就是这个问                       题)。

二、org.smslib.TimeoutException: No response from device.

       

          原因:

                   1.端口长时间被占用

      解决办法:

                    在一定时间之后及时的释放端口和资源

三、gnu.io.RXTXPort$SerialOutputStream.flush(RXTXPort.java:1231)

         
     原因:

                   1.端口无法通讯,可能被占用了(常见)
                   2.SIM卡对某个指令返回慢过慢(少见)

      解决办法:

                    1、确定没有其他程序在占用串口如:串口调试器程序;
                   2、 更换一张SIM卡再试试,再不源码去掉cops指令的设置;


四、org.smslib.GatewayException: Comm library exception: java.lang.RuntimeException: gnu.io.NoSuchPortException
    


        原因:

             win32com.dll和javax.comm.properties没有配置正确

   解决办法:

               正确的存储路径jdk\jre\bin\win32com.dll;jdk\jre\lib\javax.comm.properties

   我由于测试的时候用到了comm.jar进行过,当同时部署的时候,也出现了这个问题,移除后解决

五、java.lang.UnsatisfiedLinkError: no win32com in java.library.path


按理说,你如果把win32com.dll放到JDK的/jre/lib/ext目录下,并把javax.comm.properties放到JDK的/jre/lib目录,把comm.jar放到你的工程的lib目录,是不会出现上述错误的,但是偶尔一次我要把发短信的后台程序做成windows服务,问题出来,就是找不到win32com,只用一招就把它搞定。呵呵,就是把win32com.dll放到JDK的/jre/bin目录下。

六、java.lang.NoClassDefFoundError: gnu/io/SerialPort(该错误出现在linxu下)
       
         原因:
                  缺少jar包,RXTXcomm.jar
         解决办法:
                  将RXTXcomm.jar放入到 jdk/jre/lib/ext下

七、java.lang.NoClassDefFoundError: Could not initialize class gnu.io.CommPortIdentifier(该错误出现在linxu下)

             原因:
                  缺少文件,librxtxParallel.so
        解决办法:
                   将librxtxParallel.so放入到jdk/jre/lib/i386  或者jdk/jre/lib/amd64下,不同的服务器可能目录名称略有不同
短信设备二次开发 2022-04-08 0 0

admin

  • 注册时间 : 2022-03-30 04:08:47
  • 邮箱地址 : admin@tenghengkeji.com
  • 此页面用于展示用户的基本上资料信息

回帖 ( 0 )