2012-07-29 11 views
5

Tengo un servidor de OpenFire configurado en mi máquina local. Estoy intentando conectar este servidor, pero obtengo el error "Sin respuesta del servidor". No estoy seguro por qué?Smack "Sin respuesta del servidor". No estoy seguro de por qué recibo este error

Tengo cliente de chispa en la misma máquina que se está conectando al servidor con éxito.

¿Pueden ayudarme a identificar el problema?

A continuación se muestra los detalles del registro que podrían ayudar

07-30 01:01:02.570: I/System.out(424): 01:01:02 AM SENT (1156489960): <stream:stream to="192.168.1.3"    xmlns="jabber:client" xmlns:stream="http://etherx.jabber.org/streams" version="1.0"> 
07-30 01:01:02.593: I/System.out(424): 01:01:02 AM RCV (1156489960): <?xml version='1.0' encoding='UTF-8'?><stream:stream xmlns:stream="http://etherx.jabber.org/streams" xmlns="jabber:client" from= 
07-30 01:01:02.593: I/System.out(424): 01:01:02 AM RCV (1156489960): "praleeds" id="39bc1246" xml:lang="en" version="1.0"><stream:features><starttls xmlns="urn:ietf:params:xml:ns:xmpp-tls"></startt 
07-30 01:01:02.593: I/System.out(424): 01:01:02 AM RCV (1156489960): ls><mechanisms xmlns="urn:ietf:params:xml:ns:xmpp-sasl"><mechanism>DIGEST-MD5</mechanism><mechanism>PLAIN</mechanism><mechanism> 
07-30 01:01:02.593: I/System.out(424): 01:01:02 AM SENT (1156489960): <starttls xmlns="urn:ietf:params:xml:ns:xmpp-tls"/> 
07-30 01:01:02.617: I/System.out(424): 01:01:02 AM RCV (1156489960): ANONYMOUS</mechanism><mechanism>CRAM-MD5</mechanism></mechanisms><compression xmlns="http://jabber.org/features/compress"><metho 
07-30 01:01:02.617: I/System.out(424): 01:01:02 AM RCV (1156489960): d>zlib</method></compression><auth xmlns="http://jabber.org/features/iq-auth"/><register xmlns="http://jabber.org/features/iq-re 
07-30 01:01:02.623: I/System.out(424): 01:01:02 AM RCV (1156489960): gister"/></stream:features><proceed xmlns="urn:ietf:params:xml:ns:xmpp-tls"/> 
07-30 01:01:02.835: W/System.err(424): java.security.KeyStoreException: KeyStore jks implementation not found 
07-30 01:01:02.835: W/System.err(424): at java.security.KeyStore.getInstance(KeyStore.java:134) 
07-30 01:01:02.835: W/System.err(424): at org.jivesoftware.smack.ServerTrustManager.<init>(ServerTrustManager.java:61) 
07-30 01:01:02.835: W/System.err(424): at org.jivesoftware.smack.XMPPConnection.proceedTLSReceived(XMPPConnection.java:839) 
07-30 01:01:02.835: W/System.err(424): at org.jivesoftware.smack.PacketReader.parsePackets(PacketReader.java:268) 
07-30 01:01:02.835: W/System.err(424): at org.jivesoftware.smack.PacketReader.access$000(PacketReader.java:44) 
07-30 01:01:02.835: W/System.err(424): at org.jivesoftware.smack.PacketReader$1.run(PacketReader.java:71) 
07-30 01:01:11.612: W/ActivityManager(59): Launch timeout has expired, giving up wake lock! 
07-30 01:01:12.038: W/ActivityManager(59): Activity idle timeout for HistoryRecord{45072328 com.android.notifications/.NotificationsActivity} 
07-30 01:01:17.284: D/dalvikvm(235): GC_EXPLICIT freed 156 objects/11400 bytes in 228ms 
07-30 01:01:17.653: I/System.out(424): 01:01:17 AM SENT (1156489960): <iq id="Q41Dw-0" to="praleeds" type="set"><query xmlns="jabber:iq:register"><password>praleed</password><email>[email protected]</email><username>praleedsuvarna</username><name>Praleed Suvarna</name></query></iq> 
07-30 01:01:22.344: D/dalvikvm(260): GC_EXPLICIT freed 45 objects/2176 bytes in 239ms 
07-30 01:01:22.693: V/Praleed-Notifications(424): No Response from Server; Host : 192.168.1.3; User : null 
07-30 01:01:22.924: I/ActivityManager(59): Displayed activity com.android.notifications/.NotificationsActivity: 21292 ms (total 21292 ms) 
07-30 01:01:23.545: I/global(424): Default buffer size used in BufferedReader constructor. It would be better to be explicit if an 8k-char buffer is required. 
07-30 01:01:23.545: I/global(424): Default buffer size used in BufferedWriter constructor. It would be better to be explicit if an 8k-char buffer is required. 
07-30 01:01:23.553: I/System.out(424): 01:01:23 AM SENT (1156489960): <stream:stream to="praleeds" xmlns="jabber:client" xmlns:stream="http://etherx.jabber.org/streams" version="1.0"> 
07-30 01:01:23.573: I/System.out(424): 01:01:23 AM SENT (1156489960): <presence id="Q41Dw-1" type="unavailable"></presence> 
07-30 01:01:23.573: I/System.out(424): 01:01:23 AM SENT (1156489960): </stream:stream> 
07-30 01:01:23.799: W/System.err(424): java.io.IOException: Read error: Failure in SSL library, usually a protocol error 
07-30 01:01:23.803: W/System.err(424): at org.apache.harmony.xnet.provider.jsse.OpenSSLSocketImpl.nativeread(Native Method) 
07-30 01:01:23.803: W/System.err(424): at org.apache.harmony.xnet.provider.jsse.OpenSSLSocketImpl.access$300(OpenSSLSocketImpl.java:55) 
07-30 01:01:23.803: W/System.err(424): at org.apache.harmony.xnet.provider.jsse.OpenSSLSocketImpl$SSLInputStream.read(OpenSSLSocketImpl.java:542) 
07-30 01:01:23.803: W/System.err(424): at java.io.InputStreamReader.read(InputStreamReader.java:275) 
07-30 01:01:23.813: W/System.err(424): at java.io.BufferedReader.fillBuf(BufferedReader.java:155) 
07-30 01:01:23.813: W/System.err(424): at java.io.BufferedReader.read(BufferedReader.java:348) 
07-30 01:01:23.813: W/System.err(424): at org.jivesoftware.smack.util.ObservableReader.read(ObservableReader.java:42) 
07-30 01:01:23.813: W/System.err(424): at org.kxml2.io.KXmlParser.peek(KXmlParser.java:931) 
07-30 01:01:23.813: W/System.err(424): at org.kxml2.io.KXmlParser.peekType(KXmlParser.java:589) 
07-30 01:01:23.813: W/System.err(424): at org.kxml2.io.KXmlParser.nextImpl(KXmlParser.java:333) 
07-30 01:01:23.813: W/System.err(424): at org.kxml2.io.KXmlParser.next(KXmlParser.java:1385) 
07-30 01:01:23.823: W/System.err(424): at org.jivesoftware.smack.PacketReader.parsePackets(PacketReader.java:326) 
07-30 01:01:23.823: W/System.err(424): at org.jivesoftware.smack.PacketReader.access$000(PacketReader.java:44) 
07-30 01:01:23.823: W/System.err(424): at org.jivesoftware.smack.PacketReader$1.run(PacketReader.java:71) 

Estoy utilizando el código de abajo

System.setProperty("smack.debugEnabled", "true"); 
    XMPPConnection.DEBUG_ENABLED = true; 

    ConnectionConfiguration config = new ConnectionConfiguration("192.168.1.3", 5222); 
    Connection connection = new XMPPConnection(config); 
    try { 
     connection.connect(); 
     AccountManager am = connection.getAccountManager(); 
     HashMap<String, String> attributes = new HashMap<String, String>(); 
     attributes.put("username", "xyz"); 
     attributes.put("password", "******"); 
     attributes.put("email", "[email protected]"); 
     attributes.put("name", "xyz"); 

     am.createAccount("xyz", "******", attributes); 
    } 

Gracias de antemano.

+0

puede ofrecerle algunos códigos de cómo se conecta al servidor? – Ali

+0

Hola Ali, acabo de editar mi publicación. Gracias por interesarse en mi publicación. – Prals

+1

He utilizado 'SmackConfiguration.setPacketReplyTimeout (10000);' Y funcionó. ¿Alguien puede ayudarme a entender por qué necesito aumentar el tiempo de espera de respuesta? Tenga en cuenta que el servidor está instalado en la máquina local. – Prals

Respuesta

26

¿Notó el error:

7-30 01:01:02.835: W/System.err(424): java.security.KeyStoreException: KeyStore jks implementation not found 
07-30 01:01:02.835: W/System.err(424): at java.security.KeyStore.getInstance(KeyStore.java:134) 
07-30 01:01:02.835: W/System.err(424): at org.jivesoftware.smack.ServerTrustManager.<init>(ServerTrustManager.java:61) 
07-30 01:01:02.835: W/System.err(424): at org.jivesoftware.smack.XMPPConnection.proceedTLSReceived(XMPPConnection.java:839) 
07-30 01:01:02.835: W/System.err(424): at org.jivesoftware.smack.PacketReader.parsePackets(PacketReader.java:268) 
07-30 01:01:02.835: W/System.err(424): at org.jivesoftware.smack.PacketReader.access$000(PacketReader.java:44) 
07-30 01:01:02.835: W/System.err(424): at org.jivesoftware.smack.PacketReader$1.run(PacketReader.java:71) 

asegúrese de fijar la implementación del almacén de confianza! Si está utilizando aSmack por ejemplo, con

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.ICE_CREAM_SANDWICH) { 
    connectionConfiguration.setTruststoreType("AndroidCAStore"); 
    connectionConfiguration.setTruststorePassword(null); 
    connectionConfiguration.setTruststorePath(null); 
} else { 
    connectionConfiguration.setTruststoreType("BKS"); 
    String path = System.getProperty("javax.net.ssl.trustStore"); 
    if (path == null) 
     path = System.getProperty("java.home") + File.separator + "etc" 
      + File.separator + "security" + File.separator 
      + "cacerts.bks"; 
    connectionConfiguration.setTruststorePath(path); 
} 

Source

+1

Gracias a ton Flow ... He implementado su sugerencia y me ayudó a reducir los errores – Prals

+1

muchas gracias, me salvó el día ...... –

+0

@Despliegue este código que utilicé, seguí estos pasos como menciono en el enlace http://randomizedsort.blogspot.in/2010/09/step-to-step-guide-to-programming.html, incluso lanzando NPE en org.jivesoftware.smack.XMPPConnection.proceedTLSReceived (XMPPConnection.java: 839) –

7

He aumentado el tiempo de espera de respuesta y funcionó como el encanto.

SmackConfiguration.setPacketReplyTimeout(10000); 

aunque no estoy seguro de por qué tengo que hacerlo cuando el servidor está instalado en la misma máquina.

Cuestiones relacionadas