簡體   English   中英

播放框架中WS調用的SSL問題

[英]SSL problem with WS call in play framework

我遇到了從Play 2.6應用程序調用Freshdesk API的問題,我創建了一個庫來使用Retrofit來做到這一點,另一個類使用Play WS來做到這一點,但是當我在Play應用程序中啟動該過程時,每個選項都失敗了。

我測試了Retrofit客戶端,並且在集成測試中,創建/刪除操作非常完美。

這是我的代碼,可用於Play WS而不是Retrofit客戶端。

public void create(String userEmail, String subject, String content) {

    // Obtain configuration using internal class and enumerations
    Config config = appService.getConfiguration(EConfig.FRESHDESK);

    JsonNode request = Json.newObject()
            .put("email", userEmail)
            .put("subject", subject)
            .put("description", content)
            .put("status", 2) // Fixed to "Open"
            .put("priority", 1); // Fixe to "Normal"

    CompletionStage<WSResponse> response = client.url(config.getString("url"))
        .setAuth(config.getString("token"), "X")
        .setContentType("application/json")
        .post(request);

    response.thenApply(wsResponse -> {

        System.out.println(wsResponse);

        return null;
    }).exceptionally(cause -> {

        logger.error("Error calling Freshdesk, this problem cannot be reported.", cause);

        return null;
    });

}

這是Play WS調用的堆棧跟蹤:

java.util.concurrent.CompletionException: java.net.ConnectException: Received fatal alert: internal_error
  at java.util.concurrent.CompletableFuture.encodeThrowable(CompletableFuture.java:292)
  at java.util.concurrent.CompletableFuture.completeThrowable(CompletableFuture.java:308)
  at java.util.concurrent.CompletableFuture.uniApply(CompletableFuture.java:593)
  at java.util.concurrent.CompletableFuture$UniApply.tryFire(CompletableFuture.java:577)
  at java.util.concurrent.CompletableFuture.postComplete(CompletableFuture.java:474)
  at java.util.concurrent.CompletableFuture.completeExceptionally(CompletableFuture.java:1977)
  at scala.concurrent.java8.FuturesConvertersImpl$CF.apply(FutureConvertersImpl.scala:21)
  at scala.concurrent.java8.FuturesConvertersImpl$CF.apply(FutureConvertersImpl.scala:18)
  at scala.concurrent.impl.CallbackRunnable.run$$$capture(Promise.scala:60)
  at scala.concurrent.impl.CallbackRunnable.run(Promise.scala)
Caused by: java.net.ConnectException: Received fatal alert: internal_error
  at play.shaded.ahc.org.asynchttpclient.netty.channel.NettyConnectListener.onFailure(NettyConnectListener.java:168)
  at play.shaded.ahc.org.asynchttpclient.netty.channel.NettyConnectListener$1.onFailure(NettyConnectListener.java:139)
  at play.shaded.ahc.org.asynchttpclient.netty.SimpleFutureListener.operationComplete(SimpleFutureListener.java:26)
  at play.shaded.ahc.io.netty.util.concurrent.DefaultPromise.notifyListener0(DefaultPromise.java:507)
  at play.shaded.ahc.io.netty.util.concurrent.DefaultPromise.notifyListeners0(DefaultPromise.java:500)
  at play.shaded.ahc.io.netty.util.concurrent.DefaultPromise.notifyListenersNow(DefaultPromise.java:479)
  at play.shaded.ahc.io.netty.util.concurrent.DefaultPromise.notifyListeners(DefaultPromise.java:420)
  at play.shaded.ahc.io.netty.util.concurrent.DefaultPromise.tryFailure(DefaultPromise.java:122)
  at play.shaded.ahc.io.netty.handler.ssl.SslHandler.notifyHandshakeFailure(SslHandler.java:1443)
  at play.shaded.ahc.io.netty.handler.ssl.SslHandler.setHandshakeFailure(SslHandler.java:1435)
Caused by: javax.net.ssl.SSLException: Received fatal alert: internal_error
  at sun.security.ssl.Alerts.getSSLException(Alerts.java:208)
  at sun.security.ssl.SSLEngineImpl.fatal(SSLEngineImpl.java:1666)
  at sun.security.ssl.SSLEngineImpl.fatal(SSLEngineImpl.java:1634)
  at sun.security.ssl.SSLEngineImpl.recvAlert(SSLEngineImpl.java:1800)
  at sun.security.ssl.SSLEngineImpl.readRecord(SSLEngineImpl.java:1083)
  at sun.security.ssl.SSLEngineImpl.readNetRecord(SSLEngineImpl.java:907)
  at sun.security.ssl.SSLEngineImpl.unwrap(SSLEngineImpl.java:781)
  at javax.net.ssl.SSLEngine.unwrap(SSLEngine.java:624)
  at play.shaded.ahc.io.netty.handler.ssl.SslHandler$SslEngineType$3.unwrap(SslHandler.java:272)
  at play.shaded.ahc.io.netty.handler.ssl.SslHandler.unwrap(SslHandler.java:1175)

最后,問題是我自己的錯誤,當我在配置中編寫端點URL時,我犯了一個拼寫錯誤。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM