我在本地计算机上安装了一个openfire服务器。我正在尝试连接此服务器,但收到“服务器无响应”错误。不确定为什么?
我在成功连接服务器的同一台机器上安装了客户端。
你能帮我解决一下这个问题吗?
以下是可能有用的日志详细信息
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)
我正在使用以下代码
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);
}
提前致谢。
答案 0 :(得分:26)
您是否注意到错误:
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)
确保修复信任库实施!如果您使用aSmack例如
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);
}
答案 1 :(得分:7)
我增加了回复超时,它就像魅力一样。
SmackConfiguration.setPacketReplyTimeout(10000);
虽然不确定为什么在服务器安装在同一台机器上时我需要这样做。