OfficeDev / ews-java-api

A java client library to access Exchange web services. The API works against Office 365 Exchange Online as well as on premises Exchange.
MIT License
869 stars 560 forks source link

Find Conversations not working #713

Open girishghoda57 opened 5 years ago

girishghoda57 commented 5 years ago

Hi team @serious6 @OS-JaR @pkropachev @shibd @atamer, We used ews java api : 2.1-SNAPSHOT</ews.java.api.version>

We call below code Collection<Conversation> folderConversations = exchangeService.findConversation( new ConversationIndexedItemView(10), new FolderId(WellKnownFolderName.Inbox));

But its threw below error The request failed. The expected XML node type was END_ELEMENT, but the actual type is START_ELEMENT.

Please help, we stuck on two days. Thank you

girishghoda57 commented 5 years ago

For any of user need help on it. The posted solution below:

  1. First replace FindConversationResponse.java with below code `/*
    • The MIT License
    • Copyright (c) 2012 Microsoft Corporation
    • Permission is hereby granted, free of charge, to any person obtaining a copy
    • of this software and associated documentation files (the "Software"), to deal
    • in the Software without restriction, including without limitation the rights
    • to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
    • copies of the Software, and to permit persons to whom the Software is
    • furnished to do so, subject to the following conditions:
    • The above copyright notice and this permission notice shall be included in
    • all copies or substantial portions of the Software.
    • THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
    • IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
    • FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
    • AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
    • LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
    • OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
    • THE SOFTWARE. */

package microsoft.exchange.webservices.data.core.response;

import microsoft.exchange.webservices.data.core.EwsServiceXmlReader; import microsoft.exchange.webservices.data.core.EwsUtilities; import microsoft.exchange.webservices.data.core.XmlElementNames; import microsoft.exchange.webservices.data.core.service.item.Conversation; import microsoft.exchange.webservices.data.property.complex.HighlightTerm; import microsoft.exchange.webservices.data.core.enumeration.misc.XmlNamespace; import microsoft.exchange.webservices.data.security.XmlNodeType;

import java.util.ArrayList; import java.util.Collection; import java.util.List;

/**

  1. Create file name "HighlightTerm" in package microsoft.exchange.webservices.data.property.complex and paste below code: `package microsoft.exchange.webservices.data.property.complex;

import microsoft.exchange.webservices.data.core.EwsServiceXmlReader; import microsoft.exchange.webservices.data.core.XmlElementNames;

public class HighlightTerm extends ComplexProperty {

private String scope;

private String value;

public HighlightTerm() {

}

/**

}`

  1. Add extra properties name in XmlElementNames.java public static final String HighlightTerms = "HighlightTerms"; public static final String HighlightTerm = "Term"; public static final String HighlightTermScope = "Scope"; public static final String HighlightTermValue = "Value"; public static final String TotalConversationsInView = "TotalConversationsInView"; public static final String IndexedOffset = "IndexedOffset";

It resolves "The request failed. The expected XML node type was END_ELEMENT, but the actual type is START_ELEMENT." error for findConversation().

I got this solution from .NET repository. Thank you.

vfa-tuantt commented 3 years ago

@girishghoda57 Thank you so much. You saved my life