2014-12-18 1 views
1

Я установил библиотеку smslib на моем компьютере с Windows. Я выполнил все инструкции на сайте smslib.org для настройки библиотеки. Но когда я пытаюсь запустить пример SendMessage, получена ошибка.smslib для Java: ошибка для отправки сообщения пример

package examples.modem; 

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

    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", "COM12", 115200, "Huawei", "E303"); 
      gateway.setInbound(true); 
      gateway.setOutbound(true); 
      gateway.setSimPin("0000"); 
      // Explicit SMSC address set is required for some modems. 
      // Below is for VODAFONE GREECE - be sure to set your own! 
      gateway.setSmscNumber("+xxxxxxxxxxx"); 
      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("xxxxxxxxx", "Hello from SMSLib!"); 
      Service.getInstance().sendMessage(msg); 
      System.out.println(msg); 
      // Or, send out a WAP SI message. 
      //OutboundWapSIMessage wapMsg = new OutboundWapSIMessage("xxxxxxxx", 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("xxxxxxxxxxx", "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(); 
     } 
    } 
} 

ошибка:

Exception in thread "main" java.lang.Error: Unresolved compilation problems: 
The method getInstance() is undefined for the type Service 
The method getInstance() is undefined for the type Service 
The method getInstance() is undefined for the type Service 
The method getInstance() is undefined for the type Service 
The method getInstance() is undefined for the type Service 

at examples.modem.SendMessage.doIt(SendMessage.java:34) 
at examples.modem.SendMessage.main(SendMessage.java:79) 

Может ли один помочь мне с этим?

+0

Вы не добавили smslib в свой классный путь, не так ли? –

+0

Нет, я добавил, я снова проверил его –

+0

Ну, «Неразрешенные проблемы компиляции» означает, что вы попробовали запустить java-программу, выполненную с помощью jdt-компилятора, у которого есть erros. Он не может найти метод getInstance(). Проверьте, есть ли у вас действительная банка, проверьте, есть ли у вашей версии этот метод, проверьте, является ли добавленная банка правильной. Я уверен, что это просто проблема с classpath. –

ответ

0

Контрольный список: -

  • добавить javax.comm.properties,
  • WIN32.DLL файл (это вам нужно поговорить с вашим модемом)
  • smslib баночка
  • Убедитесь, что вы есть совместимый модем. Android-смартфоны не работают. вам либо нужны некоторые конкретные старые школьные модели с встроенным модемом, либо usb-GSM модем.
  • Есть ли в вашем пакете другие классы?
+0

Я добавил javax.comm.properties в JAVA_HOME \ jre \ lib \ ext, win32.dll в JAVA_HOME \ jre \ bin , smslib jar в путь к классу. Но такая же ошибка –