我试图通过Java中的REST调用来调用IBM Watson服务。我在Eclipse中有一个Web项目,它通过Bluemix Tools发布。我也使用.jar文件。但是,当我尝试一个简单的代码,如:
LanguageTranslation service = new LanguageTranslation();
service.setUsernameAndPassword("{username}","{password}");
List <IdentifiedLanguage> langs = service.identify("this is a test");
System.out.println(langs);
我得到了这个例外:
Unable to extract the trust manager on okhttp3.internal.Platform@ab895790, sslSocketFactory is class com.ibm.jsse2.SSLSocketFactoryImpl
[WARNING ] Application {http://webapp.aw/}ResourceServlet has thrown exception, unwinding now
[WARNING ] Exception in handleFault on interceptor org.apache.cxf.jaxrs.interceptor.JAXRSDefaultFaultOutInterceptor@ac51d486
Unable to extract the trust manager on okhttp3.internal.Platform@ab895790, sslSocketFactory is class com.ibm.jsse2.SSLSocketFactoryImpl
Unable to extract the trust manager on okhttp3.internal.Platform@ab895790, sslSocketFactory is class com.ibm.jsse2.SSLSocketFactoryImpl
答案 0 :(得分:1)
我想你可能有一个过时的JAR文件。您可以尝试从here下载最新版本。
完成后,将JAR文件添加到项目的构建路径中,然后尝试:
LanguageTranslation service = new LanguageTranslation();
service.setUsernameAndPassword("username", "password");
ServiceCall<List<IdentifiedLanguage>> langs = service.identify("this is a test");
System.out.println(langs.execute());
答案 1 :(得分:0)
似乎与Bluemix上使用的JVM以及该库的最新版本(3.0.0.RC1)有些不兼容。
我可以在本地运行示例代码。只是不在Bluemix上。
我的解决方法是使用旧的2.10版本的库:
https://github.com/watson-developer-cloud/java-sdk/releases/tag/java-sdk-2.10.0
那里一切正常(但是你需要从翻译调用的末尾删除.execute()以与旧库兼容)。