2014-07-14 85 views
1

我想在一些日期之間閱讀一位用戶的所有約會。並且從他們那裏得到關於什麼的信息,從何時起直到何時,它具有哪種顏色(類別),如果不在辦公室的狀態。 我沒有找到有效的樣本。你能告訴我一個樣本嗎?Java EWS閱讀Outlook約會

我使用Win7和EWS的Java API 1.2從MS

回答

1

使用與日曆文件夾開始和結束日期CalendarView得到一組日期範圍內的一切。將你想在一個屬性集的屬性,將其設置在CalendarView,並使用ExchangeService.findAppointments(),讓他們:通過FindItemsResults

CalendarView view = new CalendarView(startDate, endDate); 
PropertySet p = new PropertySet(ItemSchema.Categories, AppointmentSchema.Start, 
    AppointmentSchema.End); 
view.setPropertySet(p); 
FindItemsResults<Appointment> find = service.findAppointments(
    WellKnownFolderName.Calendar, view); 

迭代,並得到你所需要的。我不確定是否有必要,但即使您使用PropertySet請求它,各種操作也不會始終返回所需的信息。如果是這樣的話,那麼你需要使用Appointment.load(PropertySet)或ExchangeService.loadPropertiesForItems(Items,PropertySet)來獲取它們。我不確定你在任命本身上的失職是什麼意思。你的意思是任命的地位?該州和省一樣?不在辦公室之外,你的意思是在用戶的辦公室之外,或者當預約安排時用戶的狀態是「不在辦公室」(又名OOF)?

+0

謝謝你的回答。我嘗試過但有一個例外。 我認爲它之前的代碼有問題。與連接..我有: url =「http://servername/EWS/Exchange.asmx」; ExchangeService es = new ExchangeService(ExchangeVersion.Exchange2007_SP1); ExchangeCredentials credentials = new WebCredentials(user,pwd); es.setURL(new URI(url)); es.setUseDefaultCredentials(false); es.setCredentials(credentials); es.setPreAuthenticate(true); 然後你的代碼崩潰了: FindItemsResults find = es.findAppointments(WellKnownFolderName.Calendar,view); –

+0

例外: microsoft.exchange.webservices.data.EWSHttpException:連接不microsoft.exchange.webservices.data.HttpClientWebRequest.throwIfConnIsNull(來源不明) \t在microsoft.exchange.webservices.data.HttpClientWebRequest.getResponseHeaders建立 \t (未知來源) \t at microsoft.exchange.webservices.data.ExchangeServiceBase.processHttpResponseHeaders(Unknown Source) 我想我有錯誤的URL,但你知道我可以檢查嗎? 還是有可能交換服務器上的某些服務沒有運行? –

+0

由於EWS Java中的錯誤,這個例外是樣板。您可以嘗試修復它(如果出現問題,SimpleServiceRequest會關閉響應,然後再嘗試再次讀取),或者使用TraceListener查看XML本身以查看錯誤的位置。這可能是響應中的一個徹頭徹尾的錯誤,或者它可能在解析XML時遇到問題。 – user1017413