Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/345.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/three.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Exchange Web服务错误:请求失败。无效的_Java_Exchange Server_Exchangewebservices_Ewsjavaapi - Fatal编程技术网

Java Exchange Web服务错误:请求失败。无效的

Java Exchange Web服务错误:请求失败。无效的,java,exchange-server,exchangewebservices,ewsjavaapi,Java,Exchange Server,Exchangewebservices,Ewsjavaapi,我正在使用EWS java api访问outlook电子邮件和阅读电子邮件。 我遇到以下错误: microsoft.exchange.webservices.data.core.exception.service.remote.ServiceRequestException: The request failed. null 这是我的密码: import microsoft.exchange.webservices.data.core.ExchangeService; impo

我正在使用EWS java api访问outlook电子邮件和阅读电子邮件。 我遇到以下错误:

microsoft.exchange.webservices.data.core.exception.service.remote.ServiceRequestException: The request failed. null
这是我的密码:

    import microsoft.exchange.webservices.data.core.ExchangeService;
    import microsoft.exchange.webservices.data.core.enumeration.misc.ExchangeVersion;
    import microsoft.exchange.webservices.data.core.enumeration.property.WellKnownFolderName;
    import microsoft.exchange.webservices.data.core.service.item.Item;
    import microsoft.exchange.webservices.data.credential.WebCredentials;
    import microsoft.exchange.webservices.data.search.FindItemsResults;
    import microsoft.exchange.webservices.data.search.ItemView;

    import microsoft.exchange.webservices.data.search.filter.SearchFilter;
    import java.util.Calendar;
    import java.util.Date;
    import java.util.Properties;

    Properties properties = new Properties();
    properties.put("javax.net.ssl.trustStore", "C:/Users/<path to java security>/cacerts" );
    properties.put("javax.net.ssl.trustStorePassword","changeit");
    System.setProperties(properties);

    service = new ExchangeService(ExchangeVersion.Exchange2010_SP2);

    def usr = "abc@mycompany.ca";
    def pwd = "password";
    def url = "https://mycompanydomain/ews/exchange.asmx";
    service = new ExchangeService(ExchangeVersion.Exchange2010_SP2);
    credentials = new WebCredentials(usr, pwd);

    service.setCredentials(credentials);

    try {
        service.setUrl(new URI(url));

        service.setTraceEnabled(true);
        Calendar cal = Calendar.getInstance();
        cal.roll(Calendar.MONTH, false);
        view = new ItemView(50);

        findResults = service.findItems(WellKnownFolderName.Inbox, view);
        for(item in findResults.getItems()) {
            println("\n + email is: "+item+ "\n") ;
        }
    } catch (Exception e) {
        e.printStackTrace();
    }


非常感谢您的帮助。

我在设置服务url时遇到了同样的问题,因此我首先设置了凭据并设置了自动发现

发生这种情况时,系统会提示用户是否接受重定向,而不是失败。该功能需要在AutoDiscoveryRedirectionUrlValidationCallback方法中实现。在下面的示例中,它只检查重定向url是否以“https://”开头。要做到这一点

static class RedirectionUrlCallback implements IAutodiscoverRedirectionUrl {
        public boolean autodiscoverRedirectionUrlValidationCallback(
                String redirectionUrl) {
            return redirectionUrl.toLowerCase().startsWith("https://");
        }
    }
现在

service.autodiscoverUrl(“,new RedirectionUrlCallback());
可以调用以安全的方式处理重定向

static class RedirectionUrlCallback implements IAutodiscoverRedirectionUrl {
        public boolean autodiscoverRedirectionUrlValidationCallback(
                String redirectionUrl) {
            return redirectionUrl.toLowerCase().startsWith("https://");
        }
    }
service.autodiscoverUrl("<your_email_address>", new RedirectionUrlCallback());