首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >XMPPError: bad-request - modify错误使用smack库4.1.8和openfire创建新用户

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

Stack Overflow用户
提问于 2016-10-19 19:27:00
回答 2查看 1.7K关注 0票数 3

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

代码语言:javascript
复制
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();
            }

例外的是

代码语言:javascript
复制
04:01:41 AM SENT (0): <iq to='127.0.0.1' id='aYej1-3' type='get'><query xmlns='jabber:iq:register'></query></iq>

凌晨04:01:41接收(0):

代码语言:javascript
复制
org.jivesoftware.smack.XMPPException$XMPPErrorException: XMPPError: bad-request - modify
at org.jivesoftware.smack.XMPPException$XMPPErrorException.ifHasErrorThenThrow(XMPPException.java:135)
at org.jivesoftware.smack.PacketCollector.nextResultOrThrow(PacketCollector.java:232)
at org.jivesoftware.smack.PacketCollector.nextResultOrThrow(PacketCollector.java:213)
at org.jivesoftware.smackx.iqregister.AccountManager.getRegistrationInfo(AccountManager.java:332)
at org.jivesoftware.smackx.iqregister.AccountManager.supportsAccountCreation(AccountManager.java:144)
at chat.Chat$1.run(Chat.java:46)
EN

回答 2

Stack Overflow用户

发布于 2016-10-19 23:12:43

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

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

然而,你的代码将只运行一次:由于已经注册的用户,第二次AccountManger将抛出一个异常。

票数 5
EN

Stack Overflow用户

发布于 2017-06-07 15:52:15

当您为帐户创建传递的用户名的value.So为空时,您也会收到此错误或异常。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40130130

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档