2013-01-05 2 views
0
public void updateSignature(ExchangeService exchange, String signature) { 
    try { 
     FolderId f = new FolderId(WellKnownFolderName.Root); 
     UserConfiguration user = UserConfiguration.bind(exchange, 
       "OWA.UserOptions", f, UserConfigurationProperties.All); 

     if (user.getDictionary().containsKey("signaturetext")) 
      user.getDictionary().setElements("signaturetext", signature); 
     else 
      user.getDictionary().addElement("signaturetext", signature); 
     user.update(); 
    } catch (Exception e) { 
     e.printStackTrace(); 
    } 
} 

user.update()에 대한 널 포인터 예외가 발생합니다. 콘솔에서 새 서명을 설정하기 전에 이전 서명을 인쇄 할 수 있으며 사전에 설정 한 후에 새 서명을 인쇄 할 수도 있습니다. 그러나 변경 사항을 영구적으로 업데이트 할 수는 없습니다. 미리 감사드립니다 .EWS 서명 업데이트 오류

답변

0

다른 코드에서는 루트가 아니라 root.parentFolderId를 사용합니다.

코드

static void SetSigniture(ExchangeService service) throws Exception { 
    Folder Root = Folder.bind(service, WellKnownFolderName.Root); 
    UserConfiguration OWAConfig = UserConfiguration.bind(service, "OWA.UserOptions", Root.getParentFolderId(), UserConfigurationProperties.All); 
    String hsHtmlSigniture = "<img src='http://www.baidu.com/img/baidu_jgylogo3.gif' />"; 
    String stTextSig = "Text sig"; 
    System.out.println(OWAConfig.getDictionary().getElements("timezone"));; 
    if (OWAConfig.getDictionary().containsKey("signaturehtml")) { 
     OWAConfig.getDictionary().setElements("signaturehtml", new Object()); 
    } else { 
     OWAConfig.getDictionary().addElement("signaturehtml", hsHtmlSigniture); 
    } 
    if (OWAConfig.getDictionary().containsKey("signaturetext")) { 
     OWAConfig.getDictionary().setElements("signaturetext", stTextSig); 
    } else { 
     OWAConfig.getDictionary().addElement("signaturetext", stTextSig); 
    } 
    OWAConfig.update(); 
} 
를 첨부 : 은 어쩌면 그 문제입니다