Smack "No Response From Server". Not sure why am i getting this error

10,372

Solution 1

Did you notice the 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)

make sure to fix the truststore implementation! If you are using aSmack for example with

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

Solution 2

I have increased the reply timeout and it worked like charm.

SmackConfiguration.setPacketReplyTimeout(10000);

though not sure why I need to do so when the server is installed on the same machine.

Share:
10,372
Prals
Author by

Prals

Updated on June 11, 2022

Comments

  • Prals
    Prals about 2 years

    I have an openfire server setted up on my local machine. I am trying to connect this server, but getting "No response from server" error. Not sure why?

    I have spark client on the same machine that is getting connected to the server successfully.

    Can you please help me out to identify the problem?

    Below is the log details that might help

    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)
    

    I am using the below code

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

    Thanks in advance.