2012-09-17 68 views
0

我使用下面的代碼來更改openfire上登錄用戶的密碼,但是這會返回nullpointer異常。黑莓changePassword不能在openfire上工作

我從以下鏈接所採取的參考:

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"); 
        } 
       }); 
      } 
     } 

回答

0

但這返回空指針異常。

你需要弄清楚是什麼導致了NullPointerException。在調試器中單步執行代碼可能會發現哪條線路正在發生異常。然後,您可以在示例代碼中查找不應爲空的空值。接下來的挑戰是找出除「空」之外的預期值,除了'空'外

或者,您可以推斷示例代碼中發生的情況,而不運行它。這通常會讓您更​​好地理解它正在做什麼,但可能會耗費大量時間。

+0

你好Micheal我得到NullPointerException,因爲我的XMlparser類在請求,響應中沒有得到任何標記。那麼你能告訴我如何在openfire服務器上更改密碼。 –