spark+smack+openfire实现请求响应简单流程 (四)

2014-11-24 10:21:33 · 作者: · 浏览: 2
erride
public void mouseReleased(MouseEvent e) { // TODO
}
});


二.服务端代码

1.服务端业务处理类

[java]
package org.jivesoftware.expand.handler.crowd;

import gnu.inet.encoding.IDNAException;

import java.util.ArrayList;
import java.util.Iterator;

import org.dom4j.Element;
import org.jivesoftware.expand.util.Dom4jElement;
import org.jivesoftware.openfire.IQHandlerInfo;
import org.jivesoftware.openfire.PacketException;
import org.jivesoftware.openfire.SharedGroupException;
import org.jivesoftware.openfire.XMPPServer;
import org.jivesoftware.openfire.auth.UnauthorizedException;
import org.jivesoftware.openfire.disco.ServerFeaturesProvider;
import org.jivesoftware.openfire.handler.IQHandler;
import org.jivesoftware.openfire.user.UserAlreadyExistsException;
import org.jivesoftware.openfire.user.UserManager;
import org.jivesoftware.util.LocaleUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.xmpp.packet.IQ;
import org.xmpp.packet.JID;
import org.xmpp.packet.PacketError;

public class IQTestrrHandler extends IQHandler implements
ServerFeaturesProvider {

private static final Logger Log = LoggerFactory
.getLogger(IQTestrrHandler.class);

private IQHandlerInfo info;

public IQTestrrHandler() {
super("XMPP User Crowd List Handler");
info = new IQHandlerInfo("query", "jabber:iq:testrr");

}

@Override
public IQ handleIQ(IQ packet) throws UnauthorizedException, PacketException {
System.out.println("IQLoadUserCrowdListHandler - handleIQ - begin");
try {
IQ returnPacket = null;

System.out.println("IQLoadUserCrowdListHandler - handleIQ - 1");

System.out.println("IQLoadUserCrowdListHandler - handleIQ - packet to xml = "
+ packet.toXML());

JID recipientJID = packet.getTo();

if (recipientJID == null
|| recipientJID.getNode() == null
|| !UserManager.getInstance().isRegisteredUser(
recipientJID.getNode())) {
returnPacket = manageRoster(packet);
}
return returnPacket;
} catch (SharedGroupException e) {
IQ result = IQ.createResultIQ(packet);
result.setChildElement(packet.getChildElement().createCopy());
result.setError(PacketError.Condition.not_acceptable);

return result;
} catch (Exception e) {
if (e.getCause() instanceof IDNAException) {
Log.warn(LocaleUtils.getLocalizedString("admin.error"), e);
IQ result = IQ.createResultIQ(packet);
result.setChildElement(packet.getChildElement().createCopy());
result.setError(PacketError.Condition.jid_malformed);

return result;
} else {
Log.error(LocaleUtils.getLocalizedString("admin.error"), e);
IQ result = IQ.createResultIQ(packet);
result.setChildElement(packet.getChildElement().createCopy());
result.setError(PacketError.Condition.internal_se