XMPPError:bad-request - 修改错误使用smack库4.1.8和openfire创建新用户

时间:2016-10-19 11:27:00

标签: java xmpp openfire smack

我一直在使用smack客户端库4.1.8和xmpp服务器(openfire服务器)开发聊天应用程序,但在尝试使用Accountmanger类创建新用户时,它会引发异常" XMPPError:bad-request - modify&# 34;

exec

,例外是这个

XMPPTCPConnectionConfiguration conf = XMPPTCPConnectionConfiguration.builder()
                        .setSecurityMode(ConnectionConfiguration.SecurityMode.disabled)
                        .setHost("127.0.0.1")
                        .setDebuggerEnabled(true)
                        .setPort(5222)
                        .setSendPresence(true)
                        .setServiceName("127.0.0.1")
                        .build();

                AbstractXMPPConnection conn2 = new XMPPTCPConnection(conf);

                //conn2.login();
                conn2.connect();

                AccountManager accountManager = AccountManager.getInstance(conn2);
                if (accountManager.supportsAccountCreation()) {
                    accountManager.sensitiveOperationOverInsecureConnection(true);
                    accountManager.createAccount("qidus", "123456");
                    conn2.login("qidus", "123456");

                }

            } catch (SmackException | IOException | XMPPException e) {
                e.printStackTrace();
            }

04:01:41 AM RECV(0):

04:01:41 AM SENT (0): <iq to='127.0.0.1' id='aYej1-3' type='get'><query xmlns='jabber:iq:register'></query></iq>

2 个答案:

答案 0 :(得分:3)

您需要正确设置服务名称。您可以通过管理面板(127.0.0.1:9090)在Openfire中查询您的serviceName,它位于页面中间的第一页,登录后查找“服务器名称”。

默认情况下,这是您的机器名称。

但是您的代码只运行一次:第二次AccountManger将因已经注册的用户而抛出异常。

答案 1 :(得分:0)

当您为创建帐户而传递的用户名为空值时,您也会收到此错误或异常。请检查您的用户名。

相关问题