2

私は次のコードを持っています:

        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) で >org.jivesoftware.smackx.pubsub.packet.SyncPacketSend.getReply(SyncPacketSend.java:61) で > 競合 (409) org.jivesoftware.smackx.pubsub.PubSubManager.sendPubsubPacket(PubSubManager.java:324) >org.jivesoftware.smackx.pubsub.PubSubManager.sendPubsubPacket(PubSubManager.java:318) org.jivesoftware.smackx.pubsub.PubSubManager.createNode (PubSubManager.java:134) PubSubPublisher.main(PubSubPublisher.java:33) で

デバッグする方法、またはこれを進める方法についてのアイデアが大好きです。ありがとう。

4

1 に答える 1

2

作成しようとしているノードは既に存在します。最初に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);
}
于 2011-06-27T22:56:14.047 に答える