Blackberry changePassword没有在openfire上工作

时间:2012-09-17 06:45:08

标签: blackberry

我使用下面的代码在openfire上更改登录用户的密码,但这会返回nullpointer异常。

我已从以下链接中获取参考:

http://xmpp.org/extensions/xep-0077.html#usecases-changepw

        if(use_ssl){
            final SecureConnection sc = (SecureConnection) Connector.open("ssl://" + this.server + ":" + this.port+this.connectionMask, Connector.READ_WRITE);
            is = sc.openInputStream();
            os = sc.openOutputStream();
            this.reader = new XmlReader(is);
            this.writer = new XmlWriter(os);

            try{
                String stream="<stream:stream to='204.93.197.136' xmlns='jabber:client' xmlns:stream='http://etherx.jabber.org/streams' version='1.0'>";
                os.write(stream.getBytes());
                os.flush();
                do {
                    reader.next();
                } while ((reader.getType() != XmlReader.END_TAG) || (!reader.getName().equals("stream:features")));

                for (Enumeration enu = listeners.elements(); enu.hasMoreElements();) {
                    XmppListener xl = (XmppListener) enu.nextElement();
                }   

                String sendRequest="<iq type='set' to='204.93.197.136' id='change1'><query xmlns='jabber:iq:register'><username>"+Jxa.loginUserName+"</username><password>"+newPassword+"</password></query></iq>"; 
                os.write(sendRequest.getBytes());
                os.flush();

                int count=0;
                do {
                    reader.next();
                    if(reader.getName().equals("error")){
                        count++;    
                    }
                } while ((reader.getType() != XmlReader.END_TAG) || (!reader.getName().equals("iq")));
                for (Enumeration enu = listeners.elements(); enu.hasMoreElements();) {
                    XmppListener xl = (XmppListener) enu.nextElement();
                }   
            }catch (Exception e) {
                System.out.println(e);
                UiApplication.getUiApplication().invokeLater(new Runnable(){
                    public void run(){
                        Dialog.alert("Record Not Updated");
                    }
                });
            }
        }

1 个答案:

答案 0 :(得分:0)

  

但这会返回nullpointer异常。

您需要找出导致NullPointerException的原因。单步执行调试器中的代码可能会显示哪条线路正在触发异常。然后,您可以在示例代码中查找不应为null的空值。下一个挑战是除了'null'

之外,还要弄清楚预期的价值

或者,您可以在不运行示例代码的情况下推断示例代码中发生的事情。这通常可以让您更好地了解它正在做什么,但可能非常耗时。