使用Scala的WS-API在Play框架中出现java.net.ConnectException错误
我试图读取一个远程json文件,然后使用play框架在Scala中使用WS-API解析它。我得到以下错误使用Scala的WS-API在Play框架中出现java.net.ConnectException错误,java,web-services,scala,playframework,Java,Web Services,Scala,Playframework,我试图读取一个远程json文件,然后使用play框架在Scala中使用WS-API解析它。我得到以下错误 [info] application - Application has just started [info] application - scheduler-initalDelay in minutes : 13 [info] application - The json file is scala.concurrent.impl.Promise$DefaultPromise@2f2fb
[info] application - Application has just started
[info] application - scheduler-initalDelay in minutes : 13
[info] application - The json file is scala.concurrent.impl.Promise$DefaultPromise@2f2fbc09
[info] application - Application shutdown...
java.net.ConnectException: https://api.some_location
at com.ning.http.client.providers.netty.NettyConnectListener.operationComplete(NettyConnectListener.java:103)
at org.jboss.netty.channel.DefaultChannelFuture.notifyListener(DefaultChannelFuture.java:427)
at org.jboss.netty.channel.DefaultChannelFuture.notifyListeners(DefaultChannelFuture.java:418)
at org.jboss.netty.channel.DefaultChannelFuture.setFailure(DefaultChannelFuture.java:380)
at org.jboss.netty.channel.socket.nio.NioClientSocketPipelineSink$1.operationComplete(NioClientSocketPipelineSink.java:115)
at org.jboss.netty.channel.DefaultChannelFuture.notifyListener(DefaultChannelFuture.java:427)
at org.jboss.netty.channel.DefaultChannelFuture.notifyListeners(DefaultChannelFuture.java:413)
at org.jboss.netty.channel.DefaultChannelFuture.setSuccess(DefaultChannelFuture.java:362)
at org.jboss.netty.channel.AbstractChannel$ChannelCloseFuture.setClosed(AbstractChannel.java:355)
at org.jboss.netty.channel.AbstractChannel.setClosed(AbstractChannel.java:185)
at org.jboss.netty.channel.socket.nio.AbstractNioChannel.setClosed(AbstractNioChannel.java:197)
at org.jboss.netty.channel.socket.nio.NioSocketChannel.setClosed(NioSocketChannel.java:84)
at org.jboss.netty.channel.socket.nio.AbstractNioWorker.close(AbstractNioWorker.java:357)
at org.jboss.netty.channel.socket.nio.NioClientSocketPipelineSink.eventSunk(NioClientSocketPipelineSink.java:58)
.
.
.
.
.
.
at sbt.RunnerWrapper$1.runRunner(FrameworkWrapper.java:200)
at sbt.RunnerWrapper$1.execute(FrameworkWrapper.java:236)
at sbt.ForkMain$Run.runTest(ForkMain.java:239)
at sbt.ForkMain$Run.runTestSafe(ForkMain.java:211)
at sbt.ForkMain$Run.runTests(ForkMain.java:187)
at sbt.ForkMain$Run.run(ForkMain.java:251)
at sbt.ForkMain.main(ForkMain.java:97)
Caused by: java.nio.channels.ClosedChannelException
... 98 more
下面是引发错误的代码段
case class Payout(payout: Double)
implicit val readPayout: Reads[Payout] = (__ \ "data" \ "data" \ "Stat" \ "payout").read[Double].map { Payout(_)}
def PayoutChange() = {
val apiUrl: String = "https://api.some_location"
Logger.info("Requesting the payout")
val temp = WS.url(apiUrl).withRequestTimeout(1000)
val result: Future[JsValue] = temp.get().map {
response =>
(response.json).as[JsValue]
}
Logger.info("The json file is " + result)
result.onComplete {
result =>
val jsonurl = result.get
val payout = jsonurl.\("payout")
Logger.debug("payout "+payout)
}
}
当我将url放入浏览器时,我可以访问APIRL。url有一些标识键,但这些键是在url中硬编码的。如果我能够通过浏览器访问url,有什么可能阻止从代码中访问它?只是一个超快速的观察,它可能是无关的,但您正在设置一秒钟的超时。虽然更改了超时,但不确定在该场景中会出现什么错误。收到相同的错误。有更新吗?有同样的问题,仍然找不到解决方案。