0

以下のコードを使用して、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");
                    }
                });
            }
        }
4

1 に答える 1

0

しかし、これは nullpointer 例外を返します。

NullPointerException の原因を突き止める必要があります。デバッガーでコードをステップ実行すると、例外が発生している行が明らかになる可能性があります。次に、null であってはならないサンプル コード内の null 値を探すことができます。次の課題は、「null」以外にどのような値が期待されるかを理解することです

または、サンプル コードをまったく実行せずに、サンプル コードで何が起こっているかを推論することもできます。これにより、通常、何を行っているかをよりよく理解できますが、時間がかかる場合があります。

于 2012-09-18T04:44:32.740 に答える