我有以下代码:
PubSubManager manager = new PubSubManager(connection, "pubsub.openfire.local");
LeafNode myNode = (LeafNode) manager.createNode("NewNode", form);
SimplePayload payload = new SimplePayload("session", "pubsub:NewNode:session", "<sessionId>1234</sessionId>");
// putting null for id means you let server generate id
PayloadItem<SimplePayload> item = new PayloadItem<SimplePayload>(null, payload);
// you could use publish() for asynchronous call
myNode.send(item);在试图发送节点值时,我不断地得到以下错误:
>org.jivesoftware.smackx.pubsub.packet.SyncPacketSend.getReply(SyncPacketSend.java:53) at >org.jivesoftware.smackx.pubsub.packet.SyncPacketSend.getReply(SyncPacketSend.java:61) at >org.jivesoftware.smackx.pubsub.PubSubManager.sendPubsubPacket(PubSubManager.java:324) at >org.jivesoftware.smackx.pubsub.PubSubManager.sendPubsubPacket(PubSubManager.java:318) at org.jivesoftware.smackx.pubsub.PubSubManager.createNode(PubSubManager.java:134) at PubSubPublisher.main(PubSubPublisher.java:33)
会喜欢任何关于如何调试,或向前推进的想法。谢谢。
发布于 2011-06-27 22:56:14
您要创建的节点已经存在。首先调用getNode和/或deleteNode,然后调用createNode。将代码包装在try/catch块中,以处理可能引发的XMPPException。
LeafNode myNode = null;
try{
try{
LeafNode existingNode = manager.getNode("NewNode");
//exists, so delete
manager.deleteNode("NewNode");
}catch(XMPPException e){
//'getNode' threw an exception.
//so we know that the node did not exist
}
myNode = (LeafNode) manager.createNode("NewNode", form);
}catch(XMPPException e){
System.err.println(e);
}https://stackoverflow.com/questions/5448317
复制相似问题