Wie verbinde ich einen XMPP-Server mit einer Java-Smack-Bibliothek?

Ich arbeite mit strophe.js am xmpp-Client in der Webanwendung, da ich in meinem Anwendungsfall schnell auf andere Seiten wechseln muss

Der derzeitige Ansatz ist nicht sicher, da jid und password in Java-Skripten sichtbar sind. Ich habe versucht, die Verbindungszeit (mit bosh) zu verkürzen, indem ich das Buch "XMPP-Programmierung mit JavaScript und Java" durchgesehen habe jQuery "von jake moffitt Ich bin auf eine Lösung gestoßen, bei der es sich bei beiden oben genannten Problemen um die Implementierung eines Sitzungsmechanismus handelt. Dieser besagt, dass wir Strophe Attach (jid, sid, rid) verwenden können, um eine Verbindung zu einer bestehenden Verbindung herzustellen. Ich benötige also SID und RID , die ich vom Anwendungsserver bekommen kann !!!

book hat ein Beispiel für eine automatisierte Verbindung zum bosh-Server angegeben, wenn sich ein Benutzer in der Webanwendung angemeldet hat. Der Autor hat diese Verbindung mithilfe eines Django-Projekts in Python implementiert. Da ich Java als serverseitige Sprache verwende, habe ich versucht, dasselbe Beispiel mithilfe von Java smcak-4.0 zu implementieren .3 und smack-bosh-4.0.3, aber keine Verbindung zum bosh-Server möglich (ich verwende ejabberd als xmpp-Server)

Mein Code ist wie folgt

 BOSHConfiguration config = new BOSHConfiguration(false,"192.168.0.106",5280,"/http-bind/","192.168.0.106");
                XMPPBOSHConnection xbc=new XMPPBOSHConnection(config); 
                xbc.connect();
                xbc.login("admin", "admin");
                System.out.println(xbc.getConnectionID());

Stack-Trace

java.lang.ClassNotFoundException: org.xmlpull.v1.XmlPullParserFactory
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1720)
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1571)
    at org.jivesoftware.smack.SmackConfiguration.processConfigFile(SmackConfiguration.java:352)
    at org.jivesoftware.smack.SmackConfiguration.processConfigFile(SmackConfiguration.java:347)
    at org.jivesoftware.smack.SmackConfiguration.<clinit>(SmackConfiguration.java:155)
    at org.jivesoftware.smack.ConnectionConfiguration.<init>(ConnectionConfiguration.java:67)

Wenn ich mich beim bosh-Server anmelden wollte, schlug dies jedes Mal fehl. Ich bin mir nicht sicher, was hier falsch ist. Kann mir jemand das erklären?

Eine weitere Sache, die ich gefunden habe, ist, man kann Session Identifier (SID) mit "xbc.getConnectionID ()" erhalten, aber wie kann man Request Identifier finden?

Jede mögliche Hilfe auf oben genanntem Problem ist !!!

Danke im Voraus!

Antworten auf die Frage(3)

Ihre Antwort auf die Frage