나는 here의 예를 따랐다. 잘 됐네. 하지만 이제는 비즈니스 로직을 수행해야합니다. case get:Get =>
Akka REST 서비스 + 파견
필요한 비즈니스 로직에는 dispatch 라이브러리가 포함됩니다. 간단히 말해서, 나는 어떤 페이지에 대한 요청을하고, 데이터를 얻고, 어떤 클래스에서 그것을 감싸고 그것을 반환한다.
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"
}
이 작동하지 않습니다 :
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
.
여기에서 문제가 될 수있는 것은 무엇입니까?
을 사용 사례가 물건을 정확하게 종류로 보인다 [파란 눈] (https://github.com/jdegoes/blueeyes) 를 위해 만들어졌습니다. –
감사합니다. 시험해 보겠습니다. – folone