ews java api创建联系人引发异常:本地名称不能为null

ews java api创建联系人引发异常:本地名称不能为null,java,api,office365,Java,Api,Office365,我正在尝试使用ews java api创建联系人。我尝试使用通过OAuth2工作流获得的accessToken对服务进行身份验证。我得到一个由以下原因引起的异常:javax.xml.stream.XMLStreamException:本地名称不能为null 下面是我基于github示例的代码 String accessToken =null; Token token = null; try { token = DatabaseUtils.getaccess

我正在尝试使用ews java api创建联系人。我尝试使用通过OAuth2工作流获得的accessToken对服务进行身份验证。我得到一个由以下原因引起的异常:javax.xml.stream.XMLStreamException:本地名称不能为null

下面是我基于github示例的代码

String accessToken =null;
    Token token = null;
    try
    {
        token = DatabaseUtils.getaccessTokensAPI(uniqueApiID);
        accessToken=token.getAccessToken();

        ExchangeService service  =  new ExchangeService(ExchangeVersion.Exchange2010_SP2);
        TokenCredentials credentials = new TokenCredentials(accessToken);
        service.setCredentials(credentials);
        service.setUrl(new URI("APP ID URI"));

        Contact contact = new Contact(service);
        contact.setGivenName("ContactName");
        contact.setMiddleName ("mName");
        contact.setSurname("sName");
        contact.setSubject("Contact Details");

        // Specify the company name.
        contact.setCompanyName("technolgies");
        PhysicalAddressEntry paEntry1 = new PhysicalAddressEntry();
        paEntry1.setStreet("12345 Main Street");
        paEntry1.setCity("Seattle");
        paEntry1.setState("orissa");
        paEntry1.setPostalCode("11111");
        paEntry1.setCountryOrRegion("INDIA");
        contact.getPhysicalAddresses().setPhysicalAddress(PhysicalAddressKey.Home, paEntry1);
        contact.save();

    }
    catch(Exception e)
    {
        e.printStackTrace();
    }
我不确定是否只能使用访问令牌对服务进行身份验证,也不确定将什么用作参数service.setUrl应用ID URI是否合适


感谢您的帮助

ExchangeService.SetUrl的目的是设置EWS端点的URL,而不是设置您的应用程序id。假设这是Office 365,您应该将其设置为发布堆栈跟踪,以便我们可以看到您的代码中的哪一位导致了异常。感谢Jason Johnston的回复。我根据你的建议更改了url,但仍然得到相同的例外。