2012-06-28 5 views
1

누군가 내 E226 3g 모뎀으로 SMS를 보낼 수없는 이유를 알고 싶습니다. 나는 예제 클래스를 구성했고, 모뎀 모델, PIN 및 Smsc 번호를 설정했다.SMSLib가 E226 3G 모뎀으로 SMS를 보내지 않습니다.

public class SendMessage 
{ 
    public void doIt() throws Exception 
    { 
     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()); 
     SerialModemGateway gateway = new SerialModemGateway("modem.com1", "COM4", 9600, "Huawei", "E226"); 
     gateway.setInbound(true); 
     gateway.setOutbound(true); 
     gateway.setSimPin("1010"); 
     // Explicit SMSC address set is required for some modems. 
     // Below is for VODAFONE GREECE - be sure to set your own! 
     gateway.setSmscNumber("+555181136200"); 
     Service.getInstance().setOutboundMessageNotification(outboundNotification); 
     Service.getInstance().addGateway(gateway); 
     Service.getInstance().startService(); 
     System.out.println(); 
     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() + " dBm"); 
     System.out.println(" Battery Level: " + gateway.getBatteryLevel() + "%"); 
     System.out.println(); 
     // Send a message synchronously. 
     OutboundMessage msg = new OutboundMessage("+556199655944", "Hello from SMSLib!"); 
     Service.getInstance().sendMessage(msg); 
     System.out.println(msg); 
     // Or, send out a WAP SI message. 
     //OutboundWapSIMessage wapMsg = new OutboundWapSIMessage("306974000000", new URL("http://www.smslib.org/"), "Visit SMSLib now!"); 
     //Service.getInstance().sendMessage(wapMsg); 
     //System.out.println(wapMsg); 
     // You can also queue some asynchronous messages to see how the callbacks 
     // are called... 
     //msg = new OutboundMessage("309999999999", "Wrong number!"); 
     //srv.queueMessage(msg, gateway.getGatewayId()); 
     //msg = new OutboundMessage("308888888888", "Wrong number!"); 
     //srv.queueMessage(msg, gateway.getGatewayId()); 
     System.out.println("Now Sleeping - Hit <enter> to terminate."); 
     System.in.read(); 
     Service.getInstance().stopService(); 
    } 

    public class OutboundNotification implements IOutboundMessageNotification 
    { 
     public void process(AGateway gateway, OutboundMessage msg) 
     { 
      System.out.println("Outbound handler called from Gateway: " + gateway.getGatewayId()); 
      System.out.println(msg); 
     } 
    } 

    public static void main(String args[]) 
    { 
     SendMessage app = new SendMessage(); 
     try 
     { 
      app.doIt(); 
     } 
     catch (Exception e) 
     { 
      e.printStackTrace(); 
     } 
    } 
} 

그것은 내가 시간 동안 얻을 전부 그

run: 
Example: Send message from a serial gsm modem. 
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 
Version: 3.5.2 
0  2012-06-28 19:08:32,652 [main] INFO org.smslib.Service - 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  2012-06-28 19:08:32,655 [main] INFO org.smslib.Service - Version: 3.5.2 
3  2012-06-28 19:08:32,655 [main] INFO org.smslib.Service - JRE Version: 1.7.0_05 
5  2012-06-28 19:08:32,657 [main] INFO org.smslib.Service - JRE Impl Version: 23.1-b03 
Exception in thread "Thread-3" java.lang.ExceptionInInitializerError 
5  2012-06-28 19:08:32,657 [main] INFO org.smslib.Service - O/S: Windows 7/amd64/6.1 
8  2012-06-28 19:08:32,660 [main] DEBUG org.smslib.threading.AServiceThread - Initialized. 
8  2012-06-28 19:08:32,660 [NotifyQueueManager] DEBUG org.smslib.threading.AServiceThread - Running... 
8  2012-06-28 19:08:32,660 [NotifyQueueManager] DEBUG org.smslib.notify.NotifyQueueManager$NotificationQueueManager - NotifyQueueManager running... 
9  2012-06-28 19:08:32,661 [main] INFO org.smslib.queues.DefaultQueueManager - Queue directory not defined. Queued messages will not be saved to filesystem. 
9  2012-06-28 19:08:32,661 [main] DEBUG org.smslib.threading.AServiceThread - Initialized. 
10  2012-06-28 19:08:32,662 [DelayQueueManager] DEBUG org.smslib.threading.AServiceThread - Running... 
10  2012-06-28 19:08:32,662 [DelayQueueManager] DEBUG org.smslib.queues.AbstractQueueManager$DelayQueueManager - DelayQueueManager running... 
10  2012-06-28 19:08:32,662 [main] DEBUG org.smslib.threading.AServiceThread - Initialized. 
    at org.smslib.modem.SerialModemDriver.connectPort(SerialModemDriver.java:69) 
    at org.smslib.modem.AModemDriver.connect(AModemDriver.java:114) 
10  2012-06-28 19:08:32,662 [WatchDog] DEBUG org.smslib.threading.AServiceThread - Running... 
    at org.smslib.modem.ModemGateway.startGateway(ModemGateway.java:189) 
11  2012-06-28 19:08:32,663 [Thread-3] INFO org.smslib.modem.ModemGateway - GTW: modem.com1: Starting gateway, using Huawei E226 AT Handler. 
    at org.smslib.Service$1Starter.run(Service.java:276) 
Caused by: java.lang.RuntimeException: CommPortIdentifier class not found 
11  2012-06-28 19:08:32,663 [Thread-3] INFO org.smslib.modem.SerialModemDriver - GTW: modem.com1: Opening: COM4 @9600 
    at org.smslib.helper.CommPortIdentifier.<clinit>(CommPortIdentifier.java:76) 
    ... 4 more 
15010 2012-06-28 19:08:47,662 [WatchDog] DEBUG org.smslib.threading.AServiceThread - Running... 
30011 2012-06-28 19:09:02,663 [WatchDog] DEBUG org.smslib.threading.AServiceThread - Running... 
45012 2012-06-28 19:09:17,664 [WatchDog] DEBUG org.smslib.threading.AServiceThread - Running... 
60012 2012-06-28 19:09:32,664 [WatchDog] DEBUG org.smslib.threading.AServiceThread - Running... 
75013 2012-06-28 19:09:47,665 [WatchDog] DEBUG org.smslib.threading.AServiceThread - Running... 
90014 2012-06-28 19:10:02,666 [WatchDog] DEBUG org.smslib.threading.AServiceThread - Running... 

를 출력합니다. 왜 어떤 아이디어가 효과가 없습니까?

답변

2

당신은 javax.comm이 없습니다. Windows에서의 javax.comm의 상황은 다소 엉망입니다. smslib installation instructions은 rxtx를 대신 사용하고 Windows 버전의 경우 Cloudhopper's page을 가리 키도록 제안합니다. 해당 라이브러리를 가져와 프로젝트에 종속성으로 추가하면 모든 설정이 완료되어야합니다.

+0

javacomm을 시도했지만 Win 7 64 비트를 지원하지 않습니다. cloudhopper의 페이지에서 rxtx 라이브러리는 잘 작동하는 64 비트 버전을 가지고 있습니다. 고마워. – dextervip

+0

내 문제는 똑같지 만 내 경우에는 이미이 모든 단계를 수행 했으니 까.이 문제를 일으킬 수있는 다른 문제를 알고 있다면 나와 공유해주세요. –

+1

@MuhammedRefaat 귀하의 문제에 대한 새로운 질문을 작성하십시오. 다른 질문을 주석으로 추가하지 마십시오. 의심 할 여지없이 빨리 대답 할 수있는 좋은 질문을 만드는 방법을 이해하려면 [질문하는 방법] (http://stackoverflow.com/help/how-to-ask) 게시물을 읽어보십시오. 행운을 빕니다! – fvu

3
Caused by: java.lang.RuntimeException: CommPortIdentifier class not found 

CommPortIdentifier 중 하나가있는 라이브러리가 누락되었습니다. 필요한 라이브러리를 찾아서 classpath에 포함 시키십시오.

+0

모든 라이브러리를 포함해도 여전히 동일한 문제가 있다면 귀하의 제안은 무엇입니까? –

0

통신 라이브러리가 없습니다.이 문제를 해결할 수있는 라이브러리가 두 개 있습니다.

try 
     { 
      classCommPortIdentifier = Class.forName("javax.comm.CommPortIdentifier"); 
     } 
     catch (ClassNotFoundException e1) 
     { 
      try 
      { 
       classCommPortIdentifier = Class.forName("gnu.io.CommPortIdentifier"); 
      } 
      catch (ClassNotFoundException e2) 
      { 
       throw new RuntimeException("CommPortIdentifier class not found"); 
      } 
     } 

그래서, gnu.io.CommPortIdentifier 클래스의 javax.comm.CommPortIdentifier 당신이 {JRE에 기본 rxtxSerial.dll 추가 확인 path.Also 클래스에있는 하나 확인 : 여기

이 오류가 발생되는 코드 조각이다 }/빈은/

gnu.io.CommPortIdentifier새로운 포장 convension을 가지고 RXTX 라이브러리입니다.

패키지 이름이 최근에 변경되어 RxTx 라이브러리를 혼동스럽게합니다. site에 어떤 언급되어 위의 코드에서 몇 가지 생각을하고 여기에

에 일을 명확하게하십시오 :

RXTX 2.1 RXTX의 주요 개발 지점입니다. 사용 된 네임 스페이스는 gnu.io입니다.. 특별한 이유가없는 한이 다운로드를 권장합니다. javax.comm. *과 호환되어야 할 필요가 있다면 RXTX 2.0을 다운로드하십시오. 그러나이 브랜치에 대한 개발 노력은별로 없기 때문에 메인 브랜치가받는 모든 수정 사항을 놓치지 않을 것입니다. *

+0

나는 똑같은 언급 된 문제를 겪었지 만 필요한 모든 단계를 만들었고 문제가 여전히 존재한다. 심지어 스 니펫을 시도해도 올바르게 잡아 내지 않고 달렸다. –

+0

예외가 있습니까? 그런 다음 게시하십시오. –

+0

아니요, 정상적으로 실행됩니다. –