This Question is Possibly Answered

1 "correct" answer available (10 pts) 2 "helpful" answers available (5 pts)
1 Replies Last post: Jul 4, 2008 3:51 AM by User: 21644 [DennisLaumen] [dennis@dennislaumen.nl] Dennis Laumen  
nujabes Bronze 1 posts since
Mar 25, 2008
Currently Being Moderated

Mar 25, 2008 9:37 AM

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.

 

 

Dennis Laumen Bronze 1 posts since
Jul 3, 2008
Currently Being Moderated
Jul 4, 2008 3:51 AM in response to: nujabes
Re: Unsubscribe using su-smack 1.3

 

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

More Like This

  • Retrieving data ...