5
votes

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.

2
can you provide some codes how you connect to the server?Ali
Hi Ali, I just edited my post. Thanks for taking interest in my post.Prals
I used 'SmackConfiguration.setPacketReplyTimeout(10000);' and it worked. Can anyone help me to understand why I need to increase the reply timeout. Please Note the server is installed on the local machine.Prals

2 Answers

26
votes

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

7
votes

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.