聊天记录forwardingMessages是空的ArrayList

时间:2018-02-16 11:05:59

标签: java openfire smack

我正在尝试实现与Openfire服务器交互的java smack客户端。我添加了监控服务的插件,也启用了存档。现在,我可以在openFire管理控制台中查看聊天记录。我想用Smack做同样的事情。这是我写的代码。

XMPPTCPConnection connection = connectToXMPP(Constants.XMPPADMINUSERNAME, Constants.XMPPADMINPWD ,Constants.XMPPDOMAIN);

MamManager mamManager = MamManager.getInstanceFor(connection);
try {
    DataForm form = new DataForm(DataForm.Type.submit);
    FormField field = new FormField(FormField.FORM_TYPE);
    field.setType(FormField.Type.hidden);
    field.addValue(MamElements.NAMESPACE);
    form.addField(field);

    FormField formField = new FormField("with");
    formField.addValue("userlocal1@125.99.44.122");
    form.addField(formField);
    boolean isSupported = mamManager.isSupported();
    // "" empty string for before
    RSMSet rsmSet = new RSMSet(maxResults, "", RSMSet.PageDirection.before);
    MamManager.MamQueryResult mamQueryResult = mamManager.page(form, rsmSet);
   // MamManager.MamQueryResult mamQueryResult1 = mamManager.queryArchive(JidCreate.from("userlocal1@125.99.44.122"));
    return mamQueryResult;

} catch (Exception e) {
    e.printStackTrace();
}
return null;

现在问题是forwardedMessages ArrayList总是为null。我究竟做错了什么?? isSupported是真的,我可以在管理控制台上看到聊天历史...请指导...

1 个答案:

答案 0 :(得分:1)

我注意到你正在尝试获取最后几条归档消息,这是有道理的。我不确定你的'之前'值是否应为空。出于测试目的,请尝试撤消页面方向,并查看是否可以获取第一个/最早的少数存档消息。