从短信发送短信到手机短信

时间:2013-03-07 07:05:17

标签: java sms

我正在使用smsj api通过gsm调制解调器将短信从PC发送到移动设备。如page所示,我尝试了以下代码。

package org.marre;

import java.io.IOException;
import org.marre.sms.SmsException;


public class SendMessage  {

    public void send() {
    try{

         // Send SMS with clickatell
         SmsSender smsSender = SmsSender.getGsmSender("COM7");
         String msg ="sample message";
         // International number to reciever without leading "+"
         String reciever = "9561356345";
         // Number of sender (not supported on all transports)
         String sender ="9561356345";
         // Connect
         smsSender.connect();
         // Send message
         smsSender.sendTextSms(msg, reciever, sender);       
         // Disconnect
         smsSender.disconnect();
    } catch(IOException i){
        i.printStackTrace();
        System.out.println("i");
    } catch(SmsException s){
        s.printStackTrace();
        System.out.println("s");
    }
    }

    public static void main(String args[]){
        SendMessage app = new SendMessage();
        app.send();
    }


}

但是我收到此错误消息:

    Exception in thread "main" java.lang.NoClassDefFoundError: org/slf4j/LoggerFactory
    at org.marre.sms.transport.gsm.SerialComm.<clinit>(SerialComm.java:58)
    at java.lang.Class.forName0(Native Method)
    at java.lang.Class.forName(Unknown Source)
    at org.marre.sms.transport.gsm.GsmTransport.class$(GsmTransport.java:83)
    at org.marre.sms.transport.gsm.GsmTransport.<clinit>(GsmTransport.java:83)
    at java.lang.Class.forName0(Native Method)
    at java.lang.Class.forName(Unknown Source)
    at org.marre.sms.transport.SmsTransportManager.getTransport(SmsTransportManager.java:75)
    at org.marre.SmsSender.<init>(SmsSender.java:112)
    at org.marre.SmsSender.getGsmSender(SmsSender.java:180)
    at org.marre.SendMessage.send(SendMessage.java:12)
    at org.marre.SendMessage.main(SendMessage.java:30)
Caused by: java.lang.ClassNotFoundException: org.slf4j.LoggerFactory
    at java.net.URLClassLoader$1.run(Unknown Source)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    ... 12 more

我是java的初学者。请帮我解释一下代码。

注意:我之前使用过smslib api来发送简单的短信。但这不支持ems消息。如果你有任何其他图书馆支持ems消息,请告诉我。 smsj是我可以轻松下载的。

1 个答案:

答案 0 :(得分:1)

问题的真正原因在于:

Caused by: java.lang.ClassNotFoundException: org.slf4j.LoggerFactory

编译器无法从类路径中找到org.slf4j.LoggerFactory

下载SLF4J并在类路径中添加库并编译代码。

注意:由于smsj引用了一个非常旧版本的Slf4J,您还需要使用这个旧版本:http://mvnrepository.com/artifact/org.slf4j/slf4j-simple/1.0-beta9