Microsoft Translator API错误检索转换

时间:2017-08-06 08:10:48

标签: java azure microsoft-translator

我只想尝试运行以下示例代码:

import com.memetix.mst.language.Language;
import com.memetix.mst.translate.Translate;
public class Translator {
public static void main(String[] args) throws Exception {

    Translate.setClientId("ID GOES HERE");

    Translate.setClientSecret("SECRET GOES HERE");

    String translatedText = Translate.execute("Bonjour le monde", 
    Language.FRENCH, Language.ENGLISH);

    System.out.println(translatedText);
  }

}

我得到以下例外:

Exception in thread "main" java.lang.Exception: [microsoft-translator-api] Error retrieving translation : datamarket.accesscontrol.windows.net
at com.memetix.mst.MicrosoftTranslatorAPI.retrieveString(MicrosoftTranslatorAPI.java:202)
at com.memetix.mst.translate.Translate.execute(Translate.java:61)
at Translator.main(Translator.java:10)

Caused by: java.net.UnknownHostException: datamarket.accesscontrol.windows.net
at java.net.AbstractPlainSocketImpl.connect(Unknown Source)
at java.net.PlainSocketImpl.connect(Unknown Source)
at java.net.SocksSocketImpl.connect(Unknown Source)
at java.net.Socket.connect(Unknown Source)
at sun.security.ssl.SSLSocketImpl.connect(Unknown Source)
at sun.security.ssl.BaseSSLSocketImpl.connect(Unknown Source)
at sun.net.NetworkClient.doConnect(Unknown Source)
at sun.net.www.http.HttpClient.openServer(Unknown Source)
at sun.net.www.http.HttpClient.openServer(Unknown Source)
at sun.net.www.protocol.https.HttpsClient.<init>(Unknown Source)
at sun.net.www.protocol.https.HttpsClient.New(Unknown Source)
at sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.getNewHttpClient(Unknown Source)
at sun.net.www.protocol.http.HttpURLConnection.plainConnect0(Unknown Source)
at sun.net.www.protocol.http.HttpURLConnection.plainConnect(Unknown Source)
at sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.connect(Unknown Source)
at sun.net.www.protocol.http.HttpURLConnection.getOutputStream0(Unknown Source)
at sun.net.www.protocol.http.HttpURLConnection.getOutputStream(Unknown Source)
at sun.net.www.protocol.https.HttpsURLConnectionImpl.getOutputStream(Unknown Source)
at com.memetix.mst.MicrosoftTranslatorAPI.getToken(MicrosoftTranslatorAPI.java:133)
at com.memetix.mst.MicrosoftTranslatorAPI.retrieveResponse(MicrosoftTranslatorAPI.java:160)
at com.memetix.mst.MicrosoftTranslatorAPI.retrieveString(MicrosoftTranslatorAPI.java:199)
... 2 more

我知道我似乎甚至都没有尝试自己解决这个问题,但我是一个完全的初学者,并且我自己无法真正理解异常追踪。我很确定我有正确的客户端秘密。在我的azure帐户中,我只看到应用程序ID和对象ID。我使用应用程序ID作为客户端ID。

有没有人对可能导致这种情况的原因有任何想法?非常感谢任何帮助。

谢谢!

1 个答案:

答案 0 :(得分:1)

MS Azure Translator API的第三方Java包装器boatmeme/microsoft-translator-java-api太旧了。不可用,因为它包裹了旧的Microsoft Translator - Text Translation旧的{&};现在不可用 网站页面顶部有一个通知Azure datamarket

  

DataMarket和数据服务正在停用,并将在2016年12月31日之后停止接受新订单。从2017年3月31日开始,现有订阅将被停用并取消。如果您想继续提供服务,请联系您的服务提供商。

要在Azure门户上使用新的Azure Translator API,您需要参考文档Announcements: Microsoft Translator Moves to the Azure portal以了解如何在Azure门户上创建新的Azure并通过新的REST API使用它。同时,作为参考,您可以在Java中看到我对其他SO线程Microsoft Translator API Java, How to get client new ID with Azure的回答。

希望它有所帮助。