有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java聊天历史转发消息是空的ArrayList

我正在尝试实现一个与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始终为空。我做错了什么??isSupported是真实的,我可以在管理控制台上查看聊天历史记录…请指导


共 (1) 个答案

  1. # 1 楼答案

    我注意到您正在尝试获取最后几条存档邮件,这很有意义。但我不确定您的“before”值是否应该为空。出于测试目的,请尝试反转页面方向,并查看是否可以获取第一条/最早的几条存档邮件