2012-07-29 17 views
5

Mam serwer openfire ustawiony na moim komputerze lokalnym. Próbuję połączyć ten serwer, ale otrzymuję komunikat "Brak odpowiedzi od serwera". Nie pewny dlaczego?Smack "Brak reakcji z serwera". Nie wiem, dlaczego otrzymuję ten błąd

Mam klienta iskrownika na tym samym komputerze, który pomyślnie łączy się z serwerem.

Czy możesz pomóc mi zidentyfikować problem?

Poniżej szczegóły dziennika, które mogą pomóc

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) 

Używam poniższy kod

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); 
    } 

z góry dzięki.

+0

można podać kilka kodów, jak połączyć się z serwerem? – Ali

+0

Cześć Ali, właśnie zredagowałem mój post. Dziękuję za zainteresowanie moim postem. – Prals

+1

Użyłem "SmackConfiguration.setPacketReplyTimeout (10000);" i zadziałało. Czy ktoś może mi pomóc zrozumieć, dlaczego muszę zwiększyć limit czasu odpowiedzi? Uwaga: serwer jest zainstalowany na komputerze lokalnym. – Prals

Odpowiedz

26

Zauważyłeś błąd:

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) 

upewnij się naprawić wdrażanie zaufanych! Jeśli używasz aSmack na przykład z

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

Dziękuję ton Flow ... Zaimplementowałem twoją sugestię i pomogło mi to zmniejszyć błędy – Prals

+1

wielkie dzięki, uratowałeś mój dzień ...... –

+0

@ Przepełnij ten kod i użyłem, postępowałem zgodnie z tymi krokami jako wzmianka w linku http://randomizedsort.blogspot.in/2010/09/step-to-step-guide-to-programming.html, nawet wrzucając NPE na org.jivesoftware.smack.XMPPConnection.proceedTLSReceived (XMPPConnection.java: 839) –

7

Zwiększyłem limit czasu odpowiedzi i zadziałało jak urok.

SmackConfiguration.setPacketReplyTimeout(10000); 

nie wiem, dlaczego muszę to zrobić, gdy serwer jest zainstalowany na tym samym komputerze.

Powiązane problemy