使用Play 2.4.6和WS向一系列宁静的API请求数据,但最后添加我遇到了一个问题,我可以弄清楚如何修复.
简而言之,我有一些像这样的代码:
def testws = Action { implicit request =>
try {
Async {
WS.url("https://someUrl").post(someodyRequest).map { response =>
Ok("got result from ws")
}.recover{
case e: Throwable =>
log.warn(s"unexpected error fetching API ", e)
}
}
} catch {
case _ => Ok("error")
}
}
Run Code Online (Sandbox Code Playgroud)
在我的本地机器上,.recover块永远不会被执行,但是,在生产中.recover总是在运行,throwable的跟踪轨迹是这样的:
java.net.ConnectException: General SSLEngine problem
at com.ning.http.client.providers.netty.request.NettyConnectListener.onFutureFailure(NettyConnectListener.java:128) ~[com.ning.async-http-client-1.9.21.jar:na]
at com.ning.http.client.providers.netty.request.NettyConnectListener.access$200(NettyConnectListener.java:37) ~[com.ning.async-http-client-1.9.21.jar:na]
at com.ning.http.client.providers.netty.request.NettyConnectListener$1.operationComplete(NettyConnectListener.java:101) ~[com.ning.async-http-client-1.9.21.jar:na]
at org.jboss.netty.channel.DefaultChannelFuture.notifyListener(DefaultChannelFuture.java:409) ~[io.netty.netty-3.10.4.Final.jar:na]
at org.jboss.netty.channel.DefaultChannelFuture.notifyListeners(DefaultChannelFuture.java:395) ~[io.netty.netty-3.10.4.Final.jar:na]
at org.jboss.netty.channel.DefaultChannelFuture.setFailure(DefaultChannelFuture.java:362) ~[io.netty.netty-3.10.4.Final.jar:na]
at org.jboss.netty.handler.ssl.SslHandler.setHandshakeFailure(SslHandler.java:1460) ~[io.netty.netty-3.10.4.Final.jar:na]
at org.jboss.netty.handler.ssl.SslHandler.unwrap(SslHandler.java:1314) ~[io.netty.netty-3.10.4.Final.jar:na]
at org.jboss.netty.handler.ssl.SslHandler.decode(SslHandler.java:852) ~[io.netty.netty-3.10.4.Final.jar:na]
at org.jboss.netty.handler.codec.frame.FrameDecoder.callDecode(FrameDecoder.java:425) ~[io.netty.netty-3.10.4.Final.jar:na] …
Run Code Online (Sandbox Code Playgroud)