vnkid
vnkid

Reputation: 318

EWS: Unsupported restriction in FindItem request exception

I am trying to implement Java client that will use EWS protocol to communicate with Mail server. So I decided to use this EWS API.

Now I am trying to get items from mailbox, it works well, but when I added some SearchFilter, an exception occurred:

microsoft.exchange.webservices.data.core.exception.service.remote.ServiceResponseException: Unsupported restriction in FindItem request
at microsoft.exchange.webservices.data.core.response.ServiceResponse.internalThrowIfNecessary(ServiceResponse.java:278)
at microsoft.exchange.webservices.data.core.response.ServiceResponse.throwIfNecessary(ServiceResponse.java:267)
at microsoft.exchange.webservices.data.core.request.MultiResponseServiceRequest.execute(MultiResponseServiceRequest.java:165)
at microsoft.exchange.webservices.data.core.ExchangeService.findItems(ExchangeService.java:985)
at microsoft.exchange.webservices.data.core.ExchangeService.findItems(ExchangeService.java:1028)
at microsoft.exchange.webservices.data.core.ExchangeService.findItems(ExchangeService.java:1088)
at main.Main.findItems(Main.java:66)
at main.Main.<init>(Main.java:49)
at main.Main.main(Main.java:84)

This is the code I have used, it is the code I copied from Github site:

public void findItems() throws Exception {
    ItemView view = new ItemView(10);
    view.getOrderBy().add(ItemSchema.DateTimeReceived, SortDirection.Ascending);
    view.setPropertySet(new PropertySet(BasePropertySet.IdOnly, ItemSchema.Subject, ItemSchema.DateTimeReceived));

    SearchFilter filter1 = new SearchFilter.ContainsSubstring(ItemSchema.Subject, "EWS");
    FindItemsResults<Item> findResults = service.findItems(WellKnownFolderName.Inbox, filter1, view);


    //MOOOOOOST IMPORTANT: load items properties, before
    service.loadPropertiesForItems(findResults, PropertySet.FirstClassProperties);
    System.out.println("Total number of items found: " + findResults.getTotalCount());

    for (Item item : findResults) {
        System.out.println(item.getSubject());
        System.out.println(item.getBody());
        // Do something with the item.
    }
}

Thanks

Upvotes: 0

Views: 970

Answers (1)

vnkid
vnkid

Reputation: 318

I have found the answer.

It is caused by the email server, which does not support resriction in finding item.

Upvotes: 1

Related Questions