首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Exchange webservice错误:请求失败。空

Exchange webservice错误:请求失败。空
EN

Stack Overflow用户
提问于 2018-02-16 20:43:04
回答 1查看 1.3K关注 0票数 3

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

代码语言:javascript
复制
microsoft.exchange.webservices.data.core.exception.service.remote.ServiceRequestException: The request failed. null

这是我的代码:

代码语言:javascript
复制
    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();
    }

下面是完整的堆栈跟踪:

代码语言:javascript
复制
15:32:13 [INFO] ScriptProcessor starts processing...
microsoft.exchange.webservices.data.core.exception.service.remote.ServiceRequestException: The request failed. null
15:32:14 [INFO] ScriptProcessor processor executed in 889ms.
    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.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:1104)
    at microsoft.exchange.webservices.data.core.ExchangeService$findItems$0.call(Unknown Source)
    at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:48)
    at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:113)
    at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:133)
    at Script1.run(Script1.groovy:54)
    at groovy.lang.GroovyShell.evaluate(GroovyShell.java:585)
    at groovy.lang.GroovyShell.evaluate(GroovyShell.java:623)
    at groovy.lang.GroovyShell.evaluate(GroovyShell.java:594)
    at org.webharvest.runtime.scripting.GroovyScriptEngine.eval(GroovyScriptEngine.java:136)
    at org.webharvest.runtime.processors.ScriptProcessor.execute(ScriptProcessor.java:74)
    at org.webharvest.runtime.processors.BaseProcessor.run(BaseProcessor.java:127)
    at org.webharvest.runtime.Scraper.execute(Scraper.java:169)
    at org.webharvest.runtime.Scraper.execute(Scraper.java:182)
    at com.freedomoss.crowdcontrol.webharvest.executor.LocalWebharvestTaskExecutor.executeWebHarvestTask(LocalWebharvestTaskExecutor.java:182)
    at com.workfusion.studio.launch.SingleThreadWebHarvestProcess.processTaskInputs(SingleThreadWebHarvestProcess.java:77)
    at com.workfusion.studio.launch.SingleThreadWebHarvestProcess.start(SingleThreadWebHarvestProcess.java:46)
    at com.workfusion.studio.launch.WebHarvestMainLauncher.launch(WebHarvestMainLauncher.java:79)
    at com.workfusion.studio.launch.WebHarvestMainLauncher.main(WebHarvestMainLauncher.java:121)
Caused by: java.lang.NullPointerException
    at com.ctc.wstx.sw.BaseStreamWriter.writeCharacters(BaseStreamWriter.java:447)
    at microsoft.exchange.webservices.data.core.EwsUtilities.formatLogMessage(EwsUtilities.java:558)
    at microsoft.exchange.webservices.data.core.ExchangeServiceBase.traceHttpRequestHeaders(ExchangeServiceBase.java:515)
    at microsoft.exchange.webservices.data.core.request.ServiceRequestBase.buildEwsHttpWebRequest(ServiceRequestBase.java:686)
    at microsoft.exchange.webservices.data.core.request.ServiceRequestBase.buildEwsHttpWebRequest(ServiceRequestBase.java:665)
    at microsoft.exchange.webservices.data.core.request.ServiceRequestBase.validateAndEmitRequest(ServiceRequestBase.java:635)
    at microsoft.exchange.webservices.data.core.request.SimpleServiceRequestBase.internalExecute(SimpleServiceRequestBase.java:62)
    ... 22 more

任何帮助都是非常感谢的。

EN

回答 1

Stack Overflow用户

发布于 2020-06-19 09:55:44

我在设置服务url时也面临着同样的问题,所以我首先通过设置凭据和安装自动发现来完成。

当发生这种情况时,可以提示用户是否接受重定向,而不是失败。该功能需要在autodiscoverRedirectionUrlValidationCallback方法中实现。在下面的示例中,它只检查重定向url是否以"https://"“开头。

代码语言:javascript
复制
static class RedirectionUrlCallback implements IAutodiscoverRedirectionUrl {
        public boolean autodiscoverRedirectionUrlValidationCallback(
                String redirectionUrl) {
            return redirectionUrl.toLowerCase().startsWith("https://");
        }
    }

现在

代码语言:javascript
复制
service.autodiscoverUrl("<your_email_address>", new RedirectionUrlCallback());

可以被调用以安全的方式处理重定向。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48834572

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档