首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Akka REST服务+调度

Akka REST服务+调度
EN

Stack Overflow用户
提问于 2011-08-26 12:20:09
回答 1查看 1.2K关注 0票数 2

我以这里为例。很管用,很好。但是现在我需要在case get:Get =>中执行一些业务逻辑。

所需的业务逻辑包括使用派单库。简单地说,我对某个页面执行请求,获取数据,将其包装在某个类中,然后返回。

我的收件箱是这样的:

代码语言:javascript
复制
case get:Get => {
  get.response.setContentType(MediaType.APPLICATION_JSON)
  val response = Sender.doLogin
  val battery = (response.batteryRemaining / response.batteryCapacity) * 100
  val soc = (response.pluginState + ", " + response.chargingStatus).replaceAll("_", " ")
  val jsonResult = pretty(render(("battery" -> battery) ~ ("soc" -> soc)))
  get OK jsonResult
  // get OK "works"
}

这样做是行不通的:

代码语言:javascript
复制
ERROR [akka:event-driven:dispatcher:event:handler-5] akka.event.slf4j.Slf4jEventHandler - 
    [akka.http.Servlet30ContextMethodFactory$$anon$2]
    [org.eclipse.jetty.io.EofException]
    [org.eclipse.jetty.io.UncheckedIOException: org.eclipse.jetty.io.EofException
    at org.eclipse.jetty.io.UncheckedPrintWriter.setError(UncheckedPrintWriter.java:107)
    at org.eclipse.jetty.io.UncheckedPrintWriter.write(UncheckedPrintWriter.java:280)
    at org.eclipse.jetty.io.UncheckedPrintWriter.write(UncheckedPrintWriter.java:295)
    at akka.http.RequestMethod$$anonfun$complete$1.apply(Mist.scala:346)
    at akka.http.RequestMethod$$anonfun$complete$1.apply(Mist.scala:343)
    at akka.http.RequestMethod$class.rawComplete(Mist.scala:357)
    at akka.http.Get.rawComplete(Mist.scala:407)
    at akka.http.RequestMethod$class.complete(Mist.scala:343)
    at akka.http.Get.complete(Mist.scala:407)
    at akka.http.RequestMethod$class.complete(Mist.scala:340)
    at akka.http.Get.complete(Mist.scala:407)
    at akka.http.RequestMethod$class.OK(Mist.scala:388)
    at akka.http.Get.OK(Mist.scala:407)
    at com.thenewmotion.caronline.services.rest.BatteryStatusService$$anonfun$receive$1.apply(BatteryStatusService.scala:36)
    at com.thenewmotion.caronline.services.rest.BatteryStatusService$$anonfun$receive$1.apply(BatteryStatusService.scala:28)
    at akka.actor.Actor$class.apply(Actor.scala:563)
    at com.thenewmotion.caronline.services.rest.BatteryStatusService.apply(BatteryStatusService.scala:27)
    at akka.actor.LocalActorRef.invoke(ActorRef.scala:890)
    at akka.dispatch.MessageInvocation.invoke(MessageHandling.scala:25)
    at akka.dispatch.ExecutableMailbox$class.processMailbox(ExecutorBasedEventDrivenDispatcher.scala:214)
    at akka.dispatch.ExecutorBasedEventDrivenDispatcher$$anon$4.processMailbox(ExecutorBasedEventDrivenDispatcher.scala:120)
    at akka.dispatch.ExecutableMailbox$class.run(ExecutorBasedEventDrivenDispatcher.scala:186)
    at akka.dispatch.ExecutorBasedEventDrivenDispatcher$$anon$4.run(ExecutorBasedEventDrivenDispatcher.scala:120)
    at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
    at java.lang.Thread.run(Thread.java:662)
    at akka.dispatch.MonitorableThread.run(ThreadPoolBuilder.scala:181)
Caused by: org.eclipse.jetty.io.EofException
    at org.eclipse.jetty.server.HttpOutput.write(HttpOutput.java:150)
    at org.eclipse.jetty.server.HttpOutput.write(HttpOutput.java:97)
    at java.io.ByteArrayOutputStream.writeTo(ByteArrayOutputStream.java:109)
    at org.eclipse.jetty.server.HttpWriter.write(HttpWriter.java:283)
    at org.eclipse.jetty.server.HttpWriter.write(HttpWriter.java:107)
    at org.eclipse.jetty.io.UncheckedPrintWriter.write(UncheckedPrintWriter.java:271)
    ... 25 more
]

看起来,在之后,它开始(使用调度库)发出请求--它用HTTP 200 OK进行响应。

这里有什么问题吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-08-26 13:34:08

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7204541

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档