有 Java 编程相关的问题?

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

java Exchange日历,创建约会和唯一ID

我正在使用ews java api,有很多问题

我创建约会,还侦听在其他地方创建的约会

我的问题是我创建了与的约会

new Appointment(exchangeService).save(notificationMode)

我还将约会详细信息(包括uniqueId)保存到我的数据库中

我看到约会出现在exchange中没有问题,然后我看到一个通知,通知它已被自动接受(我可以关闭房间的自动接受,但仍然会遇到下面相同的问题)

然后,当我的exchange订户从exchange接收到新约会已创建的通知事件时,我看到它启动。我似乎每次得到4个事件,一个创建的事件,两个修改的事件和移动事件

问题是这些事件中的每一个都有一个唯一的y,而不是我所期望的x

这意味着我无法检查这是否是我已经创建的约会

我从来没有像我所期望的那样,得到一个带有原始uniqueId x的活动。我知道唯一ID可以更改,这很糟糕,但似乎没有任何其他字段可以使用

我能做些什么来解决这个问题


共 (1) 个答案

  1. # 1 楼答案

    当项目所在的active directory更改时,项目的给定id将更改。听起来您的自动接受正在移动项目。我还没有测试这个场景

    如果你做一个简单的。save()下次推/拉时,您将从exchange返回一个创建和修改事件。似乎没有办法防止这种情况。他们应该与您从保存中获得的id相同。您只需要检查一下是否已经有了用于创建的项。对于修改,我不能代表微软解释为什么我们会得到一个修改,但它应该与创建完全相同

    当项目更改目录时,您将获得一个修改和移动事件。这两个项目的ID与您在原始保存期间收到的ID不同。ItemEvent有一个旧的ItemID,我相信您可以使用它。也可以从这些ID中解析出GUID,这不会改变,但我认为没有必要这样做。最好的方法可能是使用OldItemId并处理移动事件