利用短信貓發送短信教程&解決windows上發送成功而linux上失敗問題

前言

目前用過的開源短信貓工具有jSMSEngine和SMSLib,下載地址及使用網上有很多,本文只是簡要介紹短信貓的安裝使用及在項目中遇到的坑。

說明:本文主要解決windows上通過短信貓發送成功而Linux上發送失敗的問題。

通過短信貓發送短信案例GitHub地址:https://github.com/Airch/jSMSEngineWebPro

安裝部署

  1. Linux系統 2.6.18以上內核已自帶usb轉串口驅動,所以一般情況下不需要安裝驅動。
  2. 將usb短信貓插入服務器usb口,使用dmesg命令查看,出現以下信息則說明系統已經識別出短信貓,接口爲/dev/ttyUSB0 (注意:如果USB接口被其他設備佔用,識別出的接口可能不一樣,一般是ttyUSB0或者ttyUSB1)
    這裏寫圖片描述
    亦可使用命令:ls /dev/ttyUSB*,或lsusb檢查系統是否識別出短信貓。
  3. 查看服務器jdk安裝版本,使用java –version命令,如果顯示結果中帶64-Bit字樣,則是64位JDK,否則是32位JDK(注意:JDK的位數和服務器的位數不是同一個概念,32位服務器只能裝32位JDK,64位服務器可能裝64位JDK,也可能裝32位JDK)。
  4. 如果是32位JDK,將32位的librxtxSerial.so放入$JAVA_HOME/jre/lib/i386目錄下,如果是64位JDK,將64位的librxtxSerial.so放入$JAVA_HOME/jre/lib/amd64目錄下。
    Windows則複製rxtxSerial.dll 到%JAVA_HOME%/jre/bin/
  5. 項目lib引入jSMSEngine.jar和RXTXComm.jar(注意:32位的so是RXTX-2.1-7pre20版本,64位的so是RXTX-2.2-pre2版本,RXTXComm.jar只能向前兼容,否則低版本的jar調用高版本的so會報nativeGetVersion的異常)。

如此環境便已搭建好,只需調用接口發送短信即可。

jSMSEngine短信貓案例代碼

基於jSMSEngine做了封裝,只暴露出簡單的短信發送接口,並且將短信貓的配置參數從properties配置文件讀取,有興趣的朋友可從GitHub上下載下來玩玩。
GitHub地址:https://github.com/Airch/jSMSEngineWebPro

windows上短信發送正常,linux上則發不出去,等了很長時間後報GSM device is not responding異常。
解決步驟:
1、換線,將短信貓配的usb轉串口線換成PL2303,淘寶上有,買過來換上,該線兼容性較好;
2、改源碼,jSMSEngine開源包裏需要將CSerialDriver.java的第88行改成
serialPort.setFlowControlMode(SerialPort.FLOWCONTROL_NONE);
這樣就可以解決windows上可以發送成功而linux失敗的問題。
3、打包,最後爲了方便,可以將修改後的jSMSEngine的源碼重新打成jar包,打包之前需要線解決CGSMAlphabets.java的亂碼問題,否則項目依賴該包運行時也會報錯,可以用其他工具打開該文件,如sublime,該工具內顯示正常不亂碼,從sublime裏複製該類的內容到eclipse裏就會顯示正常,然後執行export-->jar file

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章