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