gpt4 book ai didi

java - EWS 和 Exchange 2010 流通知 - 看到双重

转载 作者:行者123 更新时间:2023-12-01 14:20:30 26 4
gpt4 key购买 nike

我正在使用 EWS Java 将应用程序与 Exchange 集成。是的,我知道它没有得到官方支持。这一切都非常简单,我已经使用交换服务器设置了流通知。然而,我遇到了一些令人头疼的问题。

首先,似乎每个事件(或一批事件)都会发送两次。例如,如果我正在查看“日历”中的“修改事件”,并且创建一个新约会或修改一个约会,我将收到两个相同的通知,每个通知都有一个 ItemEvent 和一个 FolderEvent。它们绝对是一个接一个地出现的不同对象,并且两个事件之间的差异为零。每个对象在任何相关字段中都具有与前一个对象相同的值。唯一的区别似乎是内存地址。

其次,我希望让通知更加细粒度。我想查看日历项目何时被修改,而不是创建日历项目的时间。看来我只能观看整个日历文件夹,并且“修改”包含新项目。有什么办法可以让它更精确吗?

编辑:实际上,我发现这种情况似乎只发生在日历文件夹中创建的 session 以及与其他与会者的 session 上。两个NotificationEventArgs,每个都有一个FolderEvent 和一个ItemEvent。经过进一步检查,我最近发现一个 ItemEvent 被创建,一个 ItemEvent 被修改,这对我来说并不奇怪,因为我现在知道 Exchange 倾向于如何处理约会。这个想法是监视创建的和修改的项目,尽管我认为它可能已分解为两个流订阅,或者考虑到行为,设置为仅修改,因为无论如何都会捕获"new"约会。

无论如何,这是通过定期的 SyncFolder 来处理的(在请求和最终设计之间发生了很多变化),最终效果很好。

最佳答案

虽然我没有使用 Java 进行 EWS 的工作经验,但我会尝试回答您的问题,因为概念保持不变。我的代码引用来自 C#

对于第一部分,您正在经历的行为是预期行为。当您订阅文件夹时,您会收到有关创建订阅时指定的任何事件的通知。因此,如果您订阅了“日历”文件夹中的“修改”和“创建”事件,并且您创建或修改了约会,您将收到 2 条通知:


1 文件夹级别更改(FolderEvent):即使您创建新项目,文件夹实际上已被“修改”
1为Item级别变化(ItemEvent):针对创建的item

这两个不一样。它们可能看起来很相似,因为都继承自“NotificationEvent”基类,但类型不同。 http://msdn.microsoft.com/en-us/library/office/microsoft.exchange.webservices.data.folderevent(v=exchg.80).aspx http://msdn.microsoft.com/en-us/library/office/microsoft.exchange.webservices.data.itemevent(v=exchg.80).aspx

对于第二部分,要仅查看已修改的事件,请在创建订阅时仅选择“EventType.Modified”。如果您可以分享您的代码片段以展示您的订阅方式,那就太好了。

关于java - EWS 和 Exchange 2010 流通知 - 看到双重,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17619895/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com