当我使用Smack构建一个java web项目时获得一个例外

时间:2016-06-21 07:56:52

标签: java smack

我正在使用smack API和openfire服务器构建一个java IM软件。当我构建java代码时,控制台提出了这个:

Exception in thread "main" java.lang.ExceptionInInitializerError
    at org.jivesoftware.smack.SmackConfiguration.getVersion(SmackConfiguration.java:96)
    at org.jivesoftware.smack.ConnectionConfiguration.<clinit>(ConnectionConfiguration.java:38)
    at test.main(test.java:12)
Caused by: java.lang.IllegalStateException: org.xmlpull.v1.XmlPullParserException: could not load any factory class (even small or full default implementation); nested exception is: 
    org.kxml2.io.XmlReader
    at org.jivesoftware.smack.SmackInitialization.<clinit>(SmackInitialization.java:119)
    ... 3 more
Caused by: org.xmlpull.v1.XmlPullParserException: could not load any factory class (even small or full default implementation); nested exception is: 
    org.kxml2.io.XmlReader
    at org.xmlpull.v1.XmlPullParserFactory.newInstance(XmlPullParserFactory.java:225)
    at org.xmlpull.v1.XmlPullParserFactory.newInstance(XmlPullParserFactory.java:76)
    at org.jivesoftware.smack.SmackInitialization.processConfigFile(SmackInitialization.java:153)
    at org.jivesoftware.smack.SmackInitialization.processConfigFile(SmackInitialization.java:148)
    at org.jivesoftware.smack.SmackInitialization.<clinit>(SmackInitialization.java:116)
    ... 3 more

我的代码是这样的:

import java.io.IOException;

import org.jivesoftware.smack.AbstractXMPPConnection;
import org.jivesoftware.smack.SmackException;
import org.jivesoftware.smack.XMPPException;
import org.jivesoftware.smack.tcp.XMPPTCPConnection;
import org.jivesoftware.smack.tcp.XMPPTCPConnectionConfiguration;

public class test {
    public static void main(String args[])
    {
    XMPPTCPConnectionConfiguration.Builder configBuilder = XMPPTCPConnectionConfiguration.builder();
    configBuilder.setUsernameAndPassword("username", "password");
    configBuilder.setResource("SomeResource");
    configBuilder.setServiceName("172.29.41.168");
    AbstractXMPPConnection connection = new XMPPTCPConnection(configBuilder.build());
    // Connect to the server
    try {
        connection.connect();
        connection.login();
    } catch (SmackException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    } catch (IOException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    } catch (XMPPException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }   
    }
}

我已导入xmlpull_1_0_5.jar,如何解决此问题?

1 个答案:

答案 0 :(得分:0)

在我看来,您的依赖项可能没有正确设置。 所以少看你的 java 代码,多看 pom 或其他构建文件。