Акка REST сервис + отправка - PullRequest
       24

Акка REST сервис + отправка

2 голосов
/ 26 августа 2011

Я последовал примеру здесь .Это работает, хорошо.Но теперь мне нужно выполнить некоторую бизнес-логику в case get:Get =>

В обязательную бизнес-логику входит использование библиотеки dispatch .Короче говоря, я делаю запрос к какой-то странице, получаю данные, упаковываю их в некоторый класс и возвращаю их.

Мой приемный пример выглядит так:не работает:

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.

Что можетпроблема здесь?

1 Ответ

3 голосов
/ 26 августа 2011

Попробуйте отключить соединение-закрытие: https://github.com/jboner/akka/blob/master/config/akka-reference.conf#L262

...