2009-10-13 9 views
1

lors de l'envoi de paquets à openfire en utilisant Smack, j'obtiens une erreur remote-server-not-found (404). Quelqu'un peut-il expliquer ce que signifie cette erreur? cela signifie ne pas se connecter au serveur ou le paquet a un problème?openfire smack envoi paquet 404 erreur signifie?

 PacketFilter responseFilter = new PacketIDFilter(packet.getPacketID()); 
     PacketCollector response = connection.createPacketCollector(responseFilter); 

     connection.sendPacket(packet); 



     // Wait up to a certain number of seconds for a reply. 
     Packet result = response.nextResult(timeout); 



     // Stop queuing results 
     response.cancel(); 



     if (result == null) { 
      throw new XMPPException("No response from server."); 
     } 
     else if (result.getError() != null) { 

      System.out.println("error:"+result.getError()); //i get error here.... 404 
      throw new XMPPException(result.getError()); 
     } 

// --- Voici comment je me connecte à openfire.

 ConnectionConfiguration config = new ConnectionConfiguration("localhost", 5222); 
     config.setCompressionEnabled(true); 
     config.setSASLAuthenticationEnabled(true); 



     XMPPConnection connection = new XMPPConnection(config); 
     // Connect to the server 
     connection.connect(); 
     // Log into the server 
     connection.login("test", "test","testresource"); 

i ci-joint le xml XMPP que je reçus de journal

envoi ....

<stream:stream to="localhost" xmlns="jabber:client" xmlns:stream="http://etherx.jabber.org/streams" version="1.0"> 
<starttls xmlns="urn:ietf:params:xml:ns:xmpp-tls"/> 
<stream:stream to="xuser" xmlns="jabber:client" xmlns:stream="http://etherx.jabber.org/streams" version="1.0"> 
<auth mechanism="DIGEST-MD5" xmlns="urn:ietf:params:xml:ns:xmpp-sasl"></auth> 
<response xmlns="urn:ietf:params:xml:ns:xmpp-sasl">Y2hhcnNldD11dGYtOCx1c2VybmFtZT0idGVzdCIscmVhbG09InpoYW5nIixub25jZT0ieHZacDFOdHlkcld6MVBzOFA0UGlnbWgrbHRieWtyclNYU0NLWVJaRyIsbmM9MDAwMDAwMDEsY25vbmNlPSIxdThheGtJSWgrSzhBLzFBSDRtTHJ5OUxDTE1OSFpBa0xvdlVGcVFGIixkaWdlc3QtdXJpPSJ4bXBwL3poYW5nIixtYXhidWY9NjU1MzYscmVzcG9uc2U9MGE3YzEzOWRkODliZjk5NDcxN2ZiNjQzY2E5NWM3ZDUscW9wPWF1dGgsYXV0aHppZD0idGVzdCI=</response> 
<stream:stream to="xuser" xmlns="jabber:client" xmlns:stream="http://etherx.jabber.org/streams" version="1.0"> 
<iq id="CHWuJ-0" type="set"><bind xmlns="urn:ietf:params:xml:ns:xmpp-bind"><resource>god</resource></bind></iq> 
<iq id="CHWuJ-1" type="set"><session xmlns="urn:ietf:params:xml:ns:xmpp-session"/></iq> 
<compress xmlns='http://jabber.org/protocol/compress'> 
<method>zlib</method></compress> 
<stream:stream to="xuser" xmlns="jabber:client" xmlns:stream="http://etherx.jabber.org/streams" version="1.0"> 
<iq id="CHWuJ-2" type="get"><query xmlns="jabber:iq:roster"></query></iq> 
<presence id="CHWuJ-3"></presence> 
<iq id="CHWuJ-4" to="pubsub.my.openfire.server" type="set"><pubsub xmlns="http://jabber.org/protocol/pubsub"><create node='TestNode2323'/><configure><x xmlns="jabber:x:data" type="submit"><field var="pubsub#persist_items" type="boolean"><value>0</value></field><field var="pubsub#deliver_payloads" type="boolean"><value>1</value></field><field var="pubsub#access_model" type="list-single"><value>open</value></field></x></configure></pubsub></iq> 

reçoivent ....

<?xml version='1.0' encoding='UTF-8'?><stream:stream xmlns:stream="http://etherx.jabber.org/streams" xmlns="jabber:client" from="xuser" id="d0689fdf" xml:lang="en" version="1.0"><stream:features><starttls xmlns="urn:ietf:params:xml:ns:xmpp-tls"></starttls> 
<mechanisms xmlns="urn:ietf:params:xml:ns:xmpp-sasl"><mechanism>PLAIN</mechanism><mechanism>CRAM-MD5</mechanism><mechanism>ANONYMOUS</mechanism><mechanism>DIGEST-MD5</mechanism></mechanisms><compression xmlns="http://jabber.org/features/compress"><method> 
zlib</method></compression><auth xmlns="http://jabber.org/features/iq-auth"/><register xmlns="http://jabber.org/features/iq-register"/></stream:features><proceed xmlns="urn:ietf:params:xml:ns:xmpp-tls"/> 
<?xml version='1.0' encoding='UTF-8'?><stream:stream xmlns:stream="http://etherx.jabber.org/streams" xmlns="jabber:client" from="xuser" id="d0689fdf" xml:lang="en" version="1.0"><stream:features><mechanisms xmlns="urn:ietf:params:xml:ns:xmpp-sasl"> 
<mechanism>PLAIN</mechanism><mechanism>CRAM-MD5</mechanism><mechanism>ANONYMOUS</mechanism><mechanism>DIGEST-MD5</mechanism></mechanisms><compression xmlns="http://jabber.org/features/compress"><method>zlib</method></compression> 
<auth xmlns="http://jabber.org/features/iq-auth"/><register xmlns="http://jabber.org/features/iq-register"/></stream:features> 
<challenge xmlns="urn:ietf:params:xml:ns:xmpp-sasl"> 
cmVhbG09InpoYW5nIixub25jZT0ieHZacDFOdHlkcld6MVBzOFA0UGlnbWgrbHRieWtyclNYU0NLWVJaRyIscW9wPSJhdXRoIixjaGFyc2V0PSJ1dGYtOCIsYWxnb3JpdGhtPSJtZDUtc2VzcyI=</challenge> 
<success xmlns="urn:ietf:params:xml:ns:xmpp-sasl"> 
cnNwYXV0aD1jOWIyOWIxYTMwN2Q5ZjdkYmZiOGM4MDBkMTU4OWFmZQ==</success> 
<?xml version='1.0' encoding='UTF-8'?><stream:stream xmlns:stream="http://etherx.jabber.org/streams" xmlns="jabber:client" from="xuser" id="d0689fdf" xml:lang="en" version="1.0"><stream:features><compression xmlns="http://jabber.org/features/compress"><method>zlib</method></compression><bind xmlns="urn:ietf:params:xml:ns:xmpp-bind"/><session xmlns="urn:ietf:params:xml:ns:xmpp-session"/></stream:features> 
<iq type="result" id="CHWuJ-0" to="xuser/d0689fdf"><bind xmlns="urn:ietf:params:xml:ns:xmpp-bind"><jid>[email protected]/god</jid></bind></iq> 
<iq type="result" id="CHWuJ-1" to="[email protected]/god"><session xmlns="urn:ietf:params:xml:ns:xmpp-session"/></iq> 
<compressed xmlns='http://jabber.org/protocol/compress'/> 
<?xml version='1.0' encoding='UTF-8'?><stream:stream xmlns:stream="http://etherx.jabber.org/streams" xmlns="jabber:client" from="xuser" id="d0689fdf" xml:lang="en" version="1.0"><stream:features><bind xmlns="urn:ietf:params:xml:ns:xmpp-bind"/><session xmlns="urn:ietf:params:xml:ns:xmpp-session"/></stream:features> 
<iq type="result" id="CHWuJ-2" to="[email protected]/god"><query xmlns="jabber:iq:roster"><item jid="test" name="test" subscription="none"/></query></iq> 
<iq type="error" id="CHWuJ-4" to="[email protected]/god" from="pubsub.my.openfire.server"><pubsub xmlns="http://jabber.org/protocol/pubsub"><create node="TestNode2323"/><configure><x xmlns="jabber:x:data" type="submit"><field var="pubsub#persist_items" type="boolean"><value>0</value></field><field var="pubsub#deliver_payloads" type="boolean"><value>1</value></field><field var="pubsub#access_model" type="list-single"><value>open</value></field></x></configure></pubsub><error code="404" type="cancel"><remote-server-not-found xmlns="urn:ietf:params:xml:ns:xmpp-stanzas"/></error></iq> 

Intepreted ..

<iq id="CHWuJ-0" to="xuser/d0689fdf" type="result"><bind xmlns="urn:ietf:params:xml:ns:xmpp-bind"><jid>[email protected]/god</jid></bind></iq> 
<iq id="CHWuJ-1" to="[email protected]/god" type="result"></iq> 
<iq id="CHWuJ-2" to="[email protected]/god" type="result"><query xmlns="jabber:iq:roster"><item jid="test" name="test" subscription="none"></item></query></iq> 
<iq id="CHWuJ-4" to="[email protected]/god" from="pubsub.my.openfire.server" type="error"><pubsub xmlns="http://jabber.org/protocol/pubsub"><create node='TestNode2323'/><configure xmlns="http://jabber.org/protocol/pubsub"><value>0</value></configure></pubsub><error code="404" type="CANCEL"><remote-server-not-found xmlns="urn:ietf:params:xml:ns:xmpp-stanzas"/></error></iq> 
+0

Comment avez-vous résolu ce problème? – Hunt

Répondre

4

Cette erreur est générée par le serveur (voir XMPPError). Je me suis essayé à obtenir exactement le même code d'erreur, mais a échoué. Cependant, j'ai le sentiment que c'est une mauvaise configuration du serveur. Avez-vous essayé de vous connecter avec un autre client, par ex. en utilisant votre client Jabber préféré?

Vous pouvez aussi activer la fonctionnalité de débogage Smacks XMPP et afficher les messages qui ont provoqué l'erreur:

static { 
    XMPPConnection.DEBUG_ENABLED = true; 
} 

(Vous pouvez également ajouter smackx-debug.jar pour obtenir encore plus de fonctionnalités de débogage)

+0

J'ai ajouté le journal de débogage. – cometta

+0

Donc ce n'est évidemment pas une authentification mais un problème de pubsub. Donc vous avez été capable de le résoudre vous-même? – sfussenegger

2

s'il vous plaît vérifier si le paquet est envoyé au bon utilisateur!

Vous devez définir un JID valide pour l'attribut "to" du paquet iq, afin que le serveur puisse envoyer le paquet au récepteur. J'ai déjà eu cette erreur parce que j'ai mis le mauvais JID dans le paquet.

btw, vous pouvez ajouter XMPPConnection.DEBUG_ENABLED = true dans votre code pour voir ce que vous avez envoyé ou regarder le journal des erreurs dans la console web openfire, et vous pouvez trouver une erreur comme ceci: Erreur lors de la tentative de connexion au serveur distant: theWrongHost (recherche DNS: theWrongHost: 5269)

5

J'ai rencontré un problème similaire que j'ai récemment résolu.

J'ai un serveur Openfire fonctionnant sur mon ordinateur local et j'utilise l'API Smack pour communiquer avec le serveur. Dans Openfire, j'ai défini deux utilisateurs: l'expéditeur et le destinataire. Je n'ai pas utilisé d'adresses e-mail pour les noms d'utilisateur.

Dans mon code, j'ai une connexion pour "expéditeur" sur un thread, et une connexion pour "récepteur" sur un thread séparé. Initialement, lors de l'envoi de messages, j'ai reçu des réponses d'erreur remote-server-not-found(404) du serveur Openfire. J'ai trouvé que, lors de la création de la demande de chat par l'expéditeur, je devais définir le participant comme [email protected][Openfire domain]. Par conséquent, si votre domaine Openfire est foo, ce serait [email protected]. Évidemment, ce n'est pas l'adresse e-mail de l'utilisateur "récepteur". Typiquement, le domaine est vraiment juste le nom de la machine sur laquelle tourne le serveur Openfire.

+0

Vous avez raison, j'ai eu le même problème et résolu. Tnx –

+0

J'ai le même problème, mais je n'arrive pas à le résoudre. J'ai utilisé [email protected], mais je ne suis pas en mesure de le résoudre. Pouvez-vous s'il vous plaît m'aider –

+0

Comment se fait-il que ce n'est pas marqué comme la bonne réponse? Il a résolu mon problème aussi – Kimutai