Unsubscribe using su-smack 1.3

Hello,

I am new to this smack and openfire application.

I was just using su-smack for pubsub. I have successfully created, publish and subscribe to a node.

There was no api for unsubscribeElement.

So I created

=====================================================================

import se.su.it.smack.pubsub.elements.PubSubElement;

/**

  • This Element represents a entity subscribing to a node

  • @author goern

*/

public class UnsubscribeElement extends PubSubElement {

private String jid;

public String getName() {

return “unsubscribe”;

}

public String getJid() {

return this.jid;

}

public void setJid(String jid) {

this.jid = jid;

}

public UnsubscribeElement(String node, String jid) {

super(node);

setJid(jid);

}

public UnsubscribeElement(String node) {

super(node);

}

public UnsubscribeElement() {

super();

}

======================================================================

And when I tried to send it to my pubsub service,

I get this error,

========================================================================

java.lang.ClassNotFoundException: se.su.it.smack.pubsub.elements.UnsubscribeElement

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)

at java.lang.ClassLoader.loadClassInternal(Unknown Source)

at java.lang.Class.forName0(Native Method)

at java.lang.Class.forName(Unknown Source)

at se.su.it.smack.packet.XMPPElementFactory.create(XMPPElementFactory.java:24)

at se.su.it.smack.packet.XMPPElementFactory.create(XMPPElementFactory.java:32)

at se.su.it.smack.provider.ProviderSupport.parseElement(ProviderSupport.java:54)

at se.su.it.smack.provider.PubSubProvider.parseIQ(PubSubProvider.java:25)

at org.jivesoftware.smack.PacketReader.parseIQ(PacketReader.java:597)

at org.jivesoftware.smack.PacketReader.parsePackets(PacketReader.java:275)

at org.jivesoftware.smack.PacketReader.access$000(PacketReader.java:44)

at org.jivesoftware.smack.PacketReader$1.run(PacketReader.java:76)

===================================================================

Can anyone please help me resolve this problem ?

Thank you.

Hi nujabes,

I have found the cause to be in the following piece of code:

public static XMPPElement create(String name) throws Exception

{

// remove the ‘-’ from the name

name = WordUtils.capitalizeFully(name, new char[]{’-’});

name = StringUtils.remove(name, ‘-’);

// String className = “se.su.it.smack.pubsub.elements.”*name.substring(0,1).toUpperCase()*name.substring(1)+“Element”;

String className = "se.su.it.smack.pubsub.elements.“name"Element”;

Class cls = Class.forName(className);

XMPPElement elt = (XMPPElement)cls.newInstance();

return elt;

}

I have already contacted Leif (the author) to see if he has a solution for our problem. I will keep you posted if I hear anything.

Regards,

Dennis