0

嗨,我正在阅读所有为使用该服务提供帮助的资源,但是我有这行调试说:

I/CredentialUtils: JNDI string lookups is not available.

编译 'com.ibm.watson.developer_cloud:java-sdk:3.0.1'

VisualRecognition service = new VisualRecognition(VisualRecognition.VERSION_DATE_2016_05_19);
service.setApiKey("<api_key>");
ClassifyImagesOptions options = new ClassifyImagesOptions.Builder().images(currentSelectFileLocation).build();
 VisualClassification result = service.classify(options).execute();
System.out.println(result);
4

1 回答 1

1

您遇到的错误不是来自 IBM Watson Visual Recognition Bluemix 服务,而是来自您正在使用的 Watson Java SDK 库。

https://github.com/watson-developer-cloud/java-sdk/search?utf8=%E2%9C%93&q=javax.naming

当您在 bluemix 中部署一些 java 代码时,在一个 liberty 容器中,它可以使用 JNDI 从 bluemix 内部获取服务凭证。但是,当您从外部 bluemix 运行时,当然,您必须提供凭据(在您的情况下,在您的 android 应用程序中)才能访问该服务。

似乎由于某种原因,您的 android 应用程序正在导入 javax.naming.Context,然后 SDK 变得有点混乱。

你在这里有这些选项 IMO

  1. 从您的 android 项目中删除 javax.naming.Context
  2. 下载并重新编译 SDK 代码以修复该问题

请注意,在 android 应用程序中提供您的凭据可能不是一个好主意,因此我建议您在此处采用不同的路径。在 Bluemix 上创建一个 RESTful Web 服务,用于包装对 Watson 服务的调用。当然,您可能希望保护此访问权,因为对 Watson 服务的每次调用都将在您的 bluemix 帐户中计费。

于 2016-07-07T12:39:37.263 回答