Smack “No Response From Server”. Not sure why am i

2019-01-22 16:12发布

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>praleedsuvarna@gmail.com</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", "xyz@gmail.com");
        attributes.put("name", "xyz");

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

Thanks in advance.

2条回答
何必那么认真
2楼-- · 2019-01-22 16:53

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.

查看更多
淡お忘
3楼-- · 2019-01-22 17:00

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

查看更多
登录 后发表回答