我在使用 Java DocuSignAPI 时遇到问题。该代码在 2.9.0 版中运行良好,但在更高版本中我得到了 ClientHandlerException。我按照 DocuSign 网页上的 OAuth 说明收到了 accessToken。我还按照代码片段创建了一个简单的信封。
如前所述,代码片段适用于 2.9.0 版和以前的版本。我已经发现,在 ApiClient 的构造函数中有一个带有空参数的 OAuth 设置。
authentications = new HashMap<String, Authentication>();
authentications.put("docusignAccessCode", new OAuth(null, null, null));
这在 OAuth.updateAccessToken 函数中的 NullPointerException 中运行。不知道我做错了什么。这是获取帐户信息的简单示例。
public static void main(String[] args) {
ApiClient apiClient = new ApiClient();
apiClient.setBasePath("https://demo.docusign.net/restapi");
apiClient.addDefaultHeader("Authorization",
"Bearer [accessToken]");
try {
AccountsApi accountsApi = new AccountsApi(apiClient);
AccountInformation accountInformation = accountsApi.getAccountInformation("[AccountId]");
System.out.println(accountInformation);
} catch (ApiException e) {
System.out.println(e);
}
}
异常消息如下:
Exception in thread "main" com.sun.jersey.api.client.ClientHandlerException
at com.docusign.esign.client.auth.OAuth.updateAccessToken(OAuth.java:111)
at com.docusign.esign.client.auth.OAuth.applyToParams(OAuth.java:99)
at com.docusign.esign.client.ApiClient.updateParamsForAuth(ApiClient.java:1209)
at com.docusign.esign.client.ApiClient.getAPIResponse(ApiClient.java:1094)
at com.docusign.esign.client.ApiClient.invokeAPI(ApiClient.java:1158)
at com.docusign.esign.api.AccountsApi.getAccountInformation(AccountsApi.java:851)
at com.docusign.esign.api.AccountsApi.getAccountInformation(AccountsApi.java:805)
at Main.main(Main.java:17)
Caused by: java.lang.NullPointerException
at com.docusign.esign.client.auth.OAuth.updateAccessToken(OAuth.java:109)
... 7 more
使用 2.9.0 版,我得到了预期的帐户信息:
class AccountInformation {
...
}