Мне нужно усовершенствовать существующее приложение JAVA, чтобы хранить крайние сроки в нескольких календарях, которые все принадлежат (созданы) одному и тому же общему почтовому ящику.
Синхронизация крайних сроков в приложении и календарях Outlook не представляет проблемы.
Помимо синхронизации дат приложение JAVA должно иметь возможность отправлять приглашения в определенный календарь.Я использовал описание https://willcode4foodblog.wordpress.com/2012/04/13/understanding-sharing-invitation-requests-ews-managed-api-1-2-part-1/. Мне нужно было перенести этот материал с C # на JAVA.На sendAndSaveMessage я всегда получаю это исключение:
exchange.webservices.data.core.exception.service.remote.ServiceRequestException: The request failed. An internal server error occurred. The operation failed.
at microsoft.exchange.webservices.data.core.request.SimpleServiceRequestBase.internalExecute(SimpleServiceRequestBase.java:74)
at microsoft.exchange.webservices.data.core.request.MultiResponseServiceRequest.execute(MultiResponseServiceRequest.java:158)
at microsoft.exchange.webservices.data.core.ExchangeService.sendItem(ExchangeService.java:789)
at microsoft.exchange.webservices.data.core.service.item.EmailMessage.internalSend(EmailMessage.java:156)
at microsoft.exchange.webservices.data.core.service.item.EmailMessage.sendAndSaveCopy(EmailMessage.java:300)
Используя отладчик, я обнаружил, что все расширенные свойства MapiPropertyType.Binare имеют нулевое значение.Например,
byte[] binInitiatorEntryId = hexStringToByteArray(initiatorEntryID);
ExtendedPropertyDefinition pidLidSharingInitiatorEntryId =
new ExtendedPropertyDefinition(propertySetSharing, 0x8A09, MapiPropertyType.Binary);
invitationRequest.setExtendedProperty(pidLidSharingInitiatorEntryId, binInitiatorEntryId);
Таким образом, в отладчике расширенное свойство существует, но значение равно «null».
Все остальные поля, отмеченные в примере, выглядят нормально в отладчике.Просто двоичные файлы все "нулевые".Я также сравнил вложение shared_metadata.xml с вложением, созданным в Outlook, и они идентичны.Хорошо, есть несколько полей, с которыми мне нужно поиграть (скажем, мне нужно использовать «специальную папку» для pidLidSharingFlavor, потому что я не нашел объяснений в спецификации о том, что такое специальная папка).Но поскольку очевидно, что «нулевое» значение для MapiPropertyType.Binary является неправильным, нет смысла проверять другие возможности.
Так что, в основном, есть два вопроса относительно этой проблемы, которые, я надеюсь, кто-то снемного больше опыта может объяснить:
Вопрос 1: Есть ли какой-либо особый способ в JAVA для хранения расширенных свойств MapiPropertyType.Binary?
Вопрос 2: Есть ли способ получить дополнительную информацию о «внутренней ошибке сервера» из EWS?Даже улучшение трассировки не дает больше информации, кроме XML-представления сообщения.
Заранее спасибо.
ChriS